• 配置文件


    GetPrivateProfile系列函数

    1)写入.ini文件:

    BOOL WritePrivateProfileString(

      LPCTSTR lpAppName,  // INI文件中的一个字段名[节名]可以有很多个节名

      LPCTSTR lpKeyName,  // lpAppName 下的一个键名,也就是里面具体的变量名

      LPCTSTR lpString,   // 键值,也就是数据

      LPCTSTR lpFileName  // INI文件的路径

    )

    经典句:return WritePrivateProfileString(def_CLOUD_SECTION, szKey,bValue ? _T("1") : _T("0"), szIniPath);

    2)读取.ini文件:

        DWORD GetPrivateProfileString(

          LPCTSTR lpAppName,        // INI文件中的一个字段名[节名]可以有很多个节名

          LPCTSTR lpKeyName,        // lpAppName 下的一个键名,也就是里面具体的变量名

          LPCTSTR lpDefault,        // 如果lpReturnedString为空,则把个变量赋给lpReturnedString

          LPTSTR lpReturnedString,  // 存放键值的指针变量,用于接收INI文件中键值(数据)的接收缓冲区

          DWORD nSize,            // lpReturnedString的缓冲区大小

          LPCTSTR lpFileName        // INI文件的路径

        );

      <返回值>  

       取得字符串 lpReturnedString,  同时返回一个整数,大小为取得字符串的长度。

    3)读取整形值:(返回值为读到的整)

        UINT GetPrivateProfileInt(

          LPCTSTR lpAppName,  // INI文件中的一个字段名[节名]可以有很多个节名

          LPCTSTR lpKeyName,  // lpAppName 下的一个键名,也就是里面具体的变量名

          INT nDefault,       // 如果没有找到指定的数据返回,则把个变量值赋给返回值

          LPCTSTR lpFileName  // INI文件的路径

        );

    int a= GetPrivateProfileInt("b", "c", 1, "c:\d.ini");

    定义变量a 查找c盘d.ini配置文件下的b小段目录下的,c参数,如果找不到使用默认值1.

    注:没有WritePrivateProfileInt(),可以使用WritePrivateProfileString();

    4)从指定的文件中取得全部的关键字的值,获取指定小节所有项名和值的一个列表

    DWORD GetPrivateProfileSection(

      LPCTSTR lpAppName,       //欲获取的小节。注意这个字串不区分大小写

      LPTSTR lpReturnedString,   //项和值字串的列表。每个字串都由一个NULL字符分隔,最后一个字串后面用两个NULL字符中止

      DWORD nSize,                 //缓冲区的大小。在windows系统中最大值为32767

      LPCTSTR lpFileName;        //初始化文件的名字。如没有指定完整路径名,windows就在Windows目录中查找文件

    )

    例子1:

      string strPath(CONFIG);

        strPath += "\LOG.ini";

        cout<<strPath<<endl;

        int res = WritePrivateProfileStringA("section", "key1", "123", strPath.c_str());//0表示失败,非0表示成功

        cout<<res<<endl;

        int num = GetPrivateProfileIntA("section", "key1", 100, strPath.c_str());//如果没有section和key1的话才会返回默认值100

        cout<<num<<endl;

        char str[10];

        num = GetPrivateProfileStringA("section2", "key3", "no find", str, sizeof(str), strPath.c_str());//会忽略value前的空格

        cout<<num<<endl;

        cout<<str<<endl;

        char str2[50];

        num = GetPrivateProfileSectionA("section", str2, sizeof(str2), strPath.c_str());

        cout<<num<<endl;

        for (char *p = str2; p < str2 + 50; p++)

        {

            cout<<*p;

        }

        cout<<endl;

    例子2:

    LPTSTR lpPath = new char[MAX_PATH];

    strcpy(lpPath, "D:\IniFileName.ini");

    WritePrivateProfileString("LiMing", "Sex", "Man", lpPath);

    WritePrivateProfileString("LiMing", "Age", "20", lpPath);

    WritePrivateProfileString("Fangfang", "Sex", "Woman", lpPath);

    WritePrivateProfileString("Fangfang", "Age", "21", lpPath);

    delete [] lpPath;

    INI文件如下:

    [LiMing]

    Sex=Man

    Age=20

    [Fangfang]

    Sex=Woman

    Age=21

    读INI文件:

    LPTSTR lpPath = new char[MAX_PATH];

    LPTSTR LiMingSex = new char[6];

    int LiMingAge;

    LPTSTR FangfangSex = new char[6];

    int FangfangAge;

    strcpy(lpPath, "..\IniFileName.ini");

    GetPrivateProfileString("LiMing", "Sex", "", LiMingSex, 6, lpPath);

    LiMingAge = GetPrivateProfileInt("LiMing", "Age", 0, lpPath);

    GetPrivateProfileString("Fangfang", "Sex", "", FangfangSex, 6, lpPath);

    FangfangAge = GetPrivateProfileInt("Fangfang", "Age", 0, lpPath);

    delete [] lpPath;

    -------------------------------------------------------------------------

    原文1:https://blog.csdn.net/wuguai4/article/details/7287346

    参考2:https://www.cnblogs.com/bigcat814/archive/2012/12/17/2821364.html

  • 相关阅读:
    多目标演化算法
    socket编程与线程模型二
    把DataGrid控件定制成漂亮的课程表
    socket编程与线程模型五
    socket编程与线程模型一
    关于RSS的点滴
    对.net事件的看法
    IIs上的证书安装要点
    2d游戏斜视角地图的实现
    Invoke and BeginInvoke
  • 原文地址:https://www.cnblogs.com/gd-luojialin/p/10962974.html
Copyright © 2020-2023  润新知