新微赢技术网

标题: ini文件的读取与写入 [打印本页]

作者: Оo水流影在.    时间: 2009-11-24 00:35
标题: ini文件的读取与写入
ini文件的读取操作
通过这五个函数可以读出 .ini文件的int型value,string型value,所有的section,每个section的所有key字段,struct型value。
返回每个section的所有key字段时,返回值为写入的字符数,缓冲区内以'\0'为间隔符。
[section]
key1=int
key2=string
key3=struct
//************************************************************************
UINT GetPrivateProfileInt(
   LPCTSTR lpAppName,
   LPCTSTR lpKeyName,
   INT nDefault,
   LPCTSTR lpFileName
);
//********************************************************************
DWORD GetPrivateProfileSection(
   LPCTSTR lpAppName,
   LPTSTR lpReturnedString,
   DWORD nSize,
   LPCTSTR lpFileName
);
//********************************************************************
DWORD GetPrivateProfileSectionNames(
   LPTSTR lpszReturnBuffer,
   DWORD nSize,
   LPCTSTR lpFileName
);
//********************************************************************
DWORD GetPrivateProfileString(
   LPCTSTR lpAppName,
   LPCTSTR lpKeyName,
   LPCTSTR lpDefault,
   LPTSTR lpReturnedString,
   DWORD nSize,
   LPCTSTR lpFileName
);
//********************************************************************
BOOL GetPrivateProfileStruct(
   LPCTSTR lpszSection,
   LPCTSTR lpszKey,
   LPVOID lpStruct,
   UINT uSizeStruct,
   LPCTSTR szFile
);
//********************************************************************
ini文件的写入操作
BOOL WritePrivateProfileSection(
   LPCTSTR lpAppName,
   LPCTSTR lpString,
   LPCTSTR lpFileName
);
BOOL WritePrivateProfileString(
   LPCTSTR lpAppName,
   LPCTSTR lpKeyName,
   LPCTSTR lpString,
   LPCTSTR lpFileName
);
BOOL WritePrivateProfileStruct(
   LPCTSTR lpszSection,
   LPCTSTR lpszKey,
   LPVOID lpStruct,
   UINT uSizeStruct,
   LPCTSTR szFile
);

h=GetPrivateProfileSection("Directories",lpReturnedString,nSize,lpFileName);
printf("%s\n%d\n%d\n",lpReturnedString,h,strlen(lpReturnedString));
for(int i=0;i<h;i++)
{
   printf("%c",lpReturnedString[i]=='\0' ? '\n':lpReturnedString[i]);
}
h=GetPrivateProfileSectionNames(lpReturnedString,nSize,lpFileName);
printf("%s\n%d\n%d\n",lpReturnedString,h,strlen(lpReturnedString));
for(int i=0;i<h;i++)
{
    printf("%c",lpReturnedString[i]=='\0' ? '\n':lpReturnedString[i]);
}
typedef struct _mytest
{
   int i;
   char a[30];
   double d;
}mytest;
mytest mystruct={0},myout;
mystruct.i=5;
strcpy(mystruct.a,"zheng");
mystruct.d=5.06;

if(WritePrivateProfileStruct("zheng","test",(mytest *)&mystruct,sizeof(mystruct),"c:\\myfile.ini"))
{
   if(GetPrivateProfileStruct("zheng","test",(mytest *)&myout,sizeof(myout),"c:\\myfile.ini"))
    printf("%d\n%s\n%f\n",myout.i,myout.a,myout.d);




欢迎光临 新微赢技术网 (http://bbs.weiying.cn/) Powered by Discuz! X3.2