16,467
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <windows.h>
#define CurrentRow 3 //配置文件的区段数量?
//修改配置文件的区段,使其顺序化
void RepairInitFileSectionName1(TCHAR *szInitFilePath)
{
DWORD i_Ret;
INT i=0;
INT j=0;
INT nFlag=0;
TCHAR i_section[MAX_PATH]={0};
TCHAR j_section[MAX_PATH]={0};
TCHAR path_value[MAX_PATH]={0};
TCHAR password_value[MAX_PATH]={0};
//TCHAR time_value[MAX_PATH]={0};
do
{
wsprintf(i_section,TEXT("file%d"),i);
i_Ret=GetPrivateProfileString(i_section,TEXT("path"),NULL,path_value,sizeof(path_value),szInitFilePath);
if((i_Ret==0)&&(nFlag<CurrentRow))
{
//读取的内容为空且项数不够则需要继续读取下面的区段
for(j=i+1;nFlag<CurrentRow;j++)
{
//继续读取下一个区段
wsprintf(j_section,TEXT("file%d"),j);
i_Ret=GetPrivateProfileString(j_section,TEXT("path"),NULL,path_value,sizeof(path_value),szInitFilePath);
if(i_Ret==0)
{
continue;//如果为空,进入下次
}
else
{
//说明读取到了内容
//需要把内容放到filei区段中
WritePrivateProfileString(i_section,TEXT("path"),path_value,szInitFilePath);
GetPrivateProfileString(j_section,TEXT("password"),NULL,password_value,sizeof(password_value),szInitFilePath);
WritePrivateProfileString(i_section,TEXT("password"),password_value,szInitFilePath);
//写完之后需要删除原来的区段
WritePrivateProfileString(j_section,NULL,NULL,szInitFilePath);
//写完之后对i进行++
i++;
nFlag++;
break;
}
}
}
else
{
i++;
nFlag++;
}
}while(nFlag<=CurrentRow);
}
int main(int argc, char *argv[])
{
RepairInitFileSectionName1("C:\\Documents and Settings\\Administrator\\桌面\\password.ini");
return 0;
}