zoukankan      html  css  js  c++  java
  • 配置信息写入到.ini文件中的方法

    在我们写的程序当中,总有一些配置信息需要保存下来,以便完成程序的功能,最简单的办法就是将这些信息写入INI文件中,程序初始化时再读入.具体应用如下:
      
    一.将信息写入.INI文件中   
    1.所用的WINAPI函数原型为:   
    BOOL WritePrivateProfileString(   LPCTSTR lpAppName,   LPCTSTR lpKeyName,   LPCTSTR lpString,   LPCTSTR lpFileName   );   
    其中各参数的意义   
    LPCTSTR lpAppName 是INI文件中的一个字段名.   
    LPCTSTR lpKeyName 是lpAppName下的一个键名,通俗讲就是变量名.   
    LPCTSTR lpString 是键值,也就是变量的值,不过必须为LPCTSTR型或CString型的.   
    LPCTSTR lpFileName 是完整的INI文件名.   

    2.具体使用方法:设现有一名学生,需把他的姓名和年龄写入 c:studstudent.ini 文件中.  CString strName,strTemp;   
    int nAge;   
    strName="张三";   
    nAge=12;   
    ::WritePrivateProfileString("StudentInfo","Name",strName,"c:\stud\student.ini"); 此时c:studstudent.ini文件中的内容如下:   
    [StudentInfo]   
    Name=张三   
    3.要将学生的年龄保存下来,只需将整型的值变为字符型即可:   
    strTemp.format("%d",nAge);  整形值被格式化到字符串中
    ::WritePrivateProfileString("StudentInfo","Age",strTemp,"c:\stud\student.ini");

    二.将信息从INI文件中读入程序中的变量   
    1.所用的WINAPI函数原型为:   DWORD GetPrivateProfileString(   LPCTSTR lpAppName,   LPCTSTR lpKeyName,   LPCTSTR lpDefault,   LPTSTR lpReturnedString,   DWORD nSize,   LPCTSTR lpFileName   );   
    其中各参数的意义   
    前二个参数与 WritePrivateProfileString中的意义一样.   
    lpDefault : 如果INI文件中没有前两个参数指定的字段名或键名,则将此值赋给变量.   lpReturnedString : 接收INI文件中的值的CString对象,即目的缓存器.   
    nSize : 目的缓存器的大小.   
    lpFileName : 是完整的INI文件名.   
    2.具体使用方法:现要将上一步中写入的学生的信息读入程序中.   
    CString strStudName;   
    int nStudAge;   
    GetPrivateProfileString("StudentInfo","Name","默认姓名",strStudName.GetBuffer(MAX_PATH),MAX_PATH,"c:\stud\student.ini");   
    执行后 strStudName 的值为:"张三",若前两个参数有误,其值为:"默认姓名".   
    注意:如果在读入的ini文件不存在,则按默认值生成相应的ini文件

     3.读入整型值要用另一个WINAPI函数:   
    UINT GetPrivateProfileInt(   LPCTSTR lpAppName,   LPCTSTR lpKeyName,   INT nDefault,   LPCTSTR lpFileName   );   
    这里的参数意义与上相同.使用方法如下:   
    nStudAge=GetPrivateProfileInt("StudentInfo","Age",10,"c:\stud\student.ini");
      补充三点:   
    1.INI文件的路径必须完整,文件名前面的各级目录必须存在,否则写入不成功,该函数返回 FALSE 值.   
    2.文件名的路径中必须为 \ ,因为在VC++中, \ 才表示一个 .   
    3.也可将INI文件放在程序所在目录,此时 lpFileName 参数为: ".\student.ini".

    PS:面试宝典的一个题目

    #include<iostream>
    using namespace std;
    int main()
    {
        int a,x;
        for(a=0,x=0;a<=1&& !x++;a++)
        {
            a++;
        }
        cout<<a<<x<<endl;
    
        int b,y;
        for(b=0,y=0;b<=1&& !y++;)
        {
            b++;
        }
        cout<<b<<y<<endl;
    
    
    }
  • 相关阅读:
    构建之法 团队和流程
    构建之法之个人技术和流程重点介绍
    几种数据库连接
    Ckidt
    hibernate_04_hibernate多对多的关系映射
    hibernate_03_hibernate一对多的关系映射
    hibernate_02_hibernate的入门
    hibernate_01_SSH环境搭建
    SpringBoot_05_ssm拦截器和默认欢迎页面的设置
    SSM14-通过AOP实现日志记录
  • 原文地址:https://www.cnblogs.com/fickleness/p/3148988.html
Copyright © 2011-2022 走看看