当前位置:   article > 正文

Config配置文件读写_config文件怎么写

config文件怎么写

配置文件本质上是包含成功操作程序所需信息的文件,这些信息以特定方式构成。它们不是在程序中进行硬编码,而是用户可配置的,通常存储在纯文本文件中。

写配置文件

使用函数WritePrivateProfileStringW写配置文件

  1. BOOL WritePrivateProfileStringW(
  2. [in] LPCWSTR lpAppName,
  3. [in] LPCWSTR lpKeyName,
  4. [in] LPCWSTR lpString,
  5. [in] LPCWSTR lpFileName
  6. );
  • 参数lpAppName

表示ini文件中的一个字段名(节名),可以有很多节名

  • 参数lpKeyName

表示lpAppName下的一个键名

  • 参数lpString

表示键值,也就是变量的值

  • 参数lpFileName

表示完整的ini文件名

读配置文件

使用GetPrivateProfileStringW读取配置文件

  1. DWORD GetPrivateProfileStringW(
  2. [in] LPCWSTR lpAppName,
  3. [in] LPCWSTR lpKeyName,
  4. [in] LPCWSTR lpDefault,
  5. [out] LPWSTR lpReturnedString,
  6. [in] DWORD nSize,
  7. [in] LPCWSTR lpFileName
  8. );
  • 参数lpAppName

表示INI文件中的一个字段名(节名)。如果此参数为NULL,则函数会将文件中的所有节名复制到提供的缓冲区。

  • 参数lpKeyName

要检索其关联字符串的键的名称。如果此参数为NULL,lpAppName参数指定的节中的所有键名称都将复制到lpReturnString参数指定的缓冲区中。

  • 参数lpDefault

默认字符串。如果在初始化文件中找不到lpKeyName键,GetPrivateProfileString会将默认字符串复制lpReturnString缓冲区。如果此参数为NULL,则默认值为空字符串 “”。避免指定带有尾随空白字符的默认字符串。该函数在lpReturnString缓冲区中插入一个字符,以去除任何尾随空格。

  • 参数lpReturnedString

表示指向接收缓冲区的指针。

  • 参数nSize

表示指向的缓冲区的大小(以字符为单位)。

  • 参数lpFileName

初始化文件的名称。如果此参数不包含文件的完整路径,系统将在 Windows 目录中搜索该文件。

Demo示例

写配置文件

通过GetCurrentDirectory获取当前程序所在目录,在当前目录下创建INI文件。

  1. //读写配置文件
  2. void CMyFileCFileView::OnWriteConfig() {
  3. //获取当前路径
  4. WCHAR strPath[MAX_PATH] = { 0 };
  5. GetCurrentDirectoryW(MAX_PATH, strPath);
  6. CString strFilePath;
  7. strFilePath.Format(L"%ls//Test.ini", strPath); //字符串拼接
  8. WritePrivateProfileStringW(L"metada", L"title", L"搜狗双拼", strFilePath); //段名、键名、内容
  9. WritePrivateProfileStringW(L"声母", L"ch", L"I", strFilePath);
  10. WritePrivateProfileStringW(L"声母", L"sh", L"U", strFilePath);
  11. }

读配置文件

读取配置文件,通过TRACE将读取的值显示出来。

  1. //读配置文件
  2. void CMyFileCFileView::OnReadConfig() {
  3. WCHAR strPath[MAX_PATH] = { 0 };
  4. WCHAR strTitle[MAX_PATH] = { 0 };
  5. WCHAR strCh[MAX_PATH] = { 0 };
  6. WCHAR strSh[MAX_PATH] = { 0 };
  7. //获取当前路径
  8. GetCurrentDirectoryW(MAX_PATH, strPath);
  9. TRACE("## strPath = %ls", strPath);
  10. CString strFilePath;
  11. strFilePath.Format(L"%ls//Test.ini", strPath); //字符串拼接
  12. DWORD dwNum1 = GetPrivateProfileStringW(L"metada", L"title", NULL,
  13. strTitle, MAX_PATH, strFilePath);
  14. DWORD dwNum2 = GetPrivateProfileStringW(L"声母", L"ch", NULL,
  15. strCh, MAX_PATH, strFilePath);
  16. DWORD dwNum3 = GetPrivateProfileStringW(L"声母", L"sh", NULL,
  17. strSh, MAX_PATH, strFilePath);
  18. TRACE("#dwNum1 = %d , dwNum2 = %d , dwNum3 = %d", dwNum1, dwNum2, dwNum3);
  19. USES_CONVERSION;
  20. char* szTitle = W2A(strTitle);
  21. char* szSh = W2A(strSh);
  22. char* szCh = W2A(strCh);
  23. TRACE("#strTitle = %s , strCh = %s , strSh = %s", szTitle, szCh, szSh);
  24. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/83999
推荐阅读
相关标签
  

闽ICP备14008679号