用GetPrivateProfileSection如何读某一段的所有键及值。如:
[COMMON]
A=1
B=2
C=3
如何读取[COMMON]段的所有的键及值?

解决方案 »

  1.   

    为什么不下载一个读.ini的类用呢!
    就一个Read(),Wirte()搞定!
    在www.vckbase.com里就有!
      

  2.   

    GetPrivateProfileInt(。)
    GetPrivateProfilesString()
      

  3.   

    纠正下
    是GetPrivateProfileString();
      

  4.   

    TCHAR m_szTemp[MAX_PATH + 1];
    GetPrivateProfileString("COMMON","A","",m_szTemp,MAX_PATH,"your.ini");
      

  5.   

    比如
    [a]
    b=c;char temp[20];
    GetPrivateProfileString("a","b",NULL,temp,20,你的ini路径);
    读出来的temp就是c
      

  6.   

    比如
    char szBuffer[256];
    GetPrivateProfileSection("COMMON",szBuffer,256,".\\config.ini");
    COMMON字段的所有key以及value就会被copy到szBuffer中
    但是每一组key以及对应的值是用'\0'也就是00隔开的 所以你还需要自己去按照'\0'来读每段的值
      

  7.   

    请问楼上的cy214,如何读szBuffer中以‘\0’隔开的字符串?谢谢!
      

  8.   

    可能只能一行一行读吧。
    先找"[COMMON]",再读后面的行,遇到"[...]"之类的或文件结束即读完。
    读到的内容可以根据'='号来截取。
      

  9.   

    我正好写过一段读ini文件的代码,功能是实现了,不过没考虑过效率,给你做参考 char szTemp[1024];
    char *pszTemp=new char[5 * 65536];
    GetPrivateProfileString("执行模块名", NULL, "", pszTemp, 5*65536, strIniFile); //先得到段落[执行模块名]下的所有字段名(此处是整数字符串)
             //按每一个字段名去读该字段的值并存储在map变量中
    nPos=0;
    while(1)
    {
    GetPrivateProfileString("执行模块名", &pszTemp[nPos], "", szTemp, sizeof(szTemp), strIniFile);
    mapModuleName[atoi(&pszTemp[nPos])]=string(szTemp);
    nPos+=strlen(&pszTemp[nPos]) + 1; //移到下一个字符串开头
    if(pszTemp[nPos] == 0)break; //碰到空字符串表示全部结束
    }
    delete pszTemp;