windows API 读写ini文件

来源:互联网 发布:uzi网络爆炸喷人视频 编辑:程序博客网 时间:2024/05/17 05:06

ini文件中通常存放的是一个程序的初始化信息。ini文件由若干个节(Section)组成,每个Section由若干键(Key)组成,每个Key可以赋相应的值。读写ini文件实际上就是读写某个的Section中相应的Key的值,而这只要借助几个函数即可完成。

  1. 与 .ini 文件相关的 API 有两类:
    1)操作系统配置文件的函数
GetProfileSectionGetProfileStringGetProfileIntWriteProfileSectionWriteProfileString

2)操作用户自定义配置文件的函数

GetPrivateProfileSectionNamesGetPrivateProfileSectionGetPrivateProfileStringGetPrivateProfileIntGetPrivateProfileStructWritePrivateProfileSectionWritePrivateProfileStringWritePrivateProfileStruct

备注:操作系统没有提供WritePrivateProfileInt函数,所以我们可以自己封装一个:

BOOL WritePrivateProfileInt(LPCTSTR lpAppName, LPCTSTR lpKeyName, INT nValue, LPCTSTR lpFileName){    TCHAR szVal[16];    ZeroMemory(szVal, sizeof(szVal));    StringCbPrintf(szVal, sizeof(szVal), TEXT("%i"), nValue);    return(WritePrivateProfileString(lpAppName, lpKeyName, szVal, lpFileName));}
  1. 操作用户自定义配置文件相关 API 的示例代码
#define INI_SECTION_ALL         TEXT("ALL")BOOL LoadINIFile(){    DWORD dwRet = 0;    TCHAR   iniFileFullPath[MAX_PATH];    ZeroMemory(iniFileFullPath, sizeof());    dwRet = ::GetModuleFileName(NULL, iniFileFullPath, MAX_PATH);    if (0 == dwRet)    {        return FALSE;    }    if (MAX_PATH == dwRet && ERROR_INSUFFICIENT_BUFFER == ::GetLastError())    {        return FALSE;    }    DWORD dwLoopIdx = dwRet - 1;    while (iniFileFullPath[dwLoopIdx] != _T('\\'))    {        --dwLoopIdx;    }    StringCchCopy(iniFileFullPath + (dwLoopIdx + 1), MAX_PATH - (dwLoopIdx + 1), INI_FILE_NAME);    if (!FindFile(iniFileFullPath))    {        WritePrivateProfileString(INI_SECTION_ALL, TEXT("rowAll"), TEXT("16"), iniFileFullPath);    }    TCHAR szVal[MAX_PATH];    ZeroMemory(szVal, sizeof(szVal));    m_nRowAll = GetPrivateProfileInt(INI_SECTION_ALL, INI_KEY_ROW_ALL, 16, iniFileFullPath);    return TRUE;}
0 0
原创粉丝点击