简单问题,vc下读取ini文件 ini文件里写ID=123NAMD=ASDFGHVC里怎么读INI文件里的内容,用什么类? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 ini文件应这样写:[项目]ID=123NAMD=ASDFGH char buff[50]; memset(buff,0,50); GetPrivateProfileString("项目","ID",“默认值”buff,50,"???.ini");请见MSDN中关于GetPrivatePorfileString函数的说明! http://crob.net/vc/source/inifile.zip我前两天写的INI类,已经用在我的项目里了,比较简单,但是可以保存并读取CString,double,CTime,dword等类型的设置项目 读BOOL CIniFileEx::ReadValue(CString Section, CString Ident, DWORD &Value, DWORD defValue){ char *pstrReturn=new char[30]; CString strDef=""; strDef.Format("%d", defValue); if(!GetPrivateProfileString(Section, Ident, strDef, pstrReturn, 30, m_sFileName)){ Value=0; delete []pstrReturn; return FALSE; } Value = atol(pstrReturn); delete []pstrReturn; return TRUE;}写BOOL CIniFileEx::WriteValue(CString Section, CString Ident, DWORD Value){ if(!fCreated)return FALSE; CString strValue; strValue.Format("%d", Value); return WritePrivateProfileString(Section, Ident, strValue, m_sFileName);} BOOL CIniFileEx::WriteValue(CString Section, CString Ident, CTime Value){ if(!fCreated)return FALSE; CString strValue; time_t lDate=Value.GetYear()*10000 + Value.GetMonth()*100 + Value.GetDay(); strValue.Format("%d", lDate); return WritePrivateProfileString(Section, Ident, strValue, m_sFileName);}BOOL CIniFileEx::ReadValue(CString Section, CString Ident, CTime &Value, CTime defValue){ char *pstrReturn=new char[30]; CString strDef=""; time_t lDate=defValue.GetYear()*10000 + defValue.GetMonth()*100 + defValue.GetDay(); strDef.Format("%d", lDate); if(!GetPrivateProfileString(Section, Ident, strDef, pstrReturn, 30, m_sFileName)){ Value=defValue; delete []pstrReturn; return FALSE; } lDate = atol(pstrReturn); //Value = CTime(lDate); int y,m,d; y=(lDate/10000)%10000; m=(lDate/100)%100; d=lDate%100; CTime tmpT(y,m,d,0,0,0); Value = tmpT; delete []pstrReturn; return TRUE;} 我有一个书签管理器,有点想读ini文件的样子,要的话,你就发个mail给我[email protected] int id=123;char chId[50];CString strId;CString strNamd="ASDFGH";DWORD dwLen=20;char szTemp[255]={0};char strGetNamd[50]={0};int iGetId;CString strGetId;::GetCurrentDirectory(250,szTemp);strcat(szTemp,"\\test.ini");itoa(id,chId,10);strId=(CString)chId;::WritePrivateProfileString("项目","ID",strId,szTemp);::WritePrivateProfileString("项目","NAMD",strNamd,szTemp);iGetId=::GetPrivateProfileInt("项目","ID",1234,szTemp);::GetPrivateProfileStrin("项目","NAMD","s",strGetNamd,dwLen,szTemp); //strGetId.Format("%d",iGetId);//AfxMessageBox(strGetId);//AfxMessageBox(strGetNamd); 有一个现成的CIniEx类,[section1]key1=value1key2=value2[section1]key1=value1key2=value2只是支持单行的Value值,不过可以改写为支持多行Value值想要吗? CListCtrl 滚动条有时无法拖动 windows下ldap的referral问题 用管理员的身份进行远程查询注册表的程序出错,高手指点 QQ密码丢了,有什么好办法没有 各位大侠帮帮忙忙 CString可以做为struct中的成员吗? 这是什么意思:_asm _emit 0x0f _asm _emit 0xa2 各位大大求教如何获取其他程序的列表控件的内容? Cstring 的减法问题 VS2008类向导加载出错,求高手指教 有没有人知道 .wmv 用什么播放器可以放 关于vc7调试的一个简单问题?
[项目]
ID=123
NAMD=ASDFGH char buff[50];
memset(buff,0,50);
GetPrivateProfileString("项目","ID",“默认值”buff,50,"???.ini");
请见MSDN中关于GetPrivatePorfileString函数的说明!
{
char *pstrReturn=new char[30];
CString strDef="";
strDef.Format("%d", defValue);
if(!GetPrivateProfileString(Section, Ident, strDef, pstrReturn, 30, m_sFileName)){
Value=0;
delete []pstrReturn;
return FALSE;
}
Value = atol(pstrReturn); delete []pstrReturn;
return TRUE;
}写
BOOL CIniFileEx::WriteValue(CString Section, CString Ident, DWORD Value)
{
if(!fCreated)return FALSE;
CString strValue;
strValue.Format("%d", Value);
return WritePrivateProfileString(Section, Ident, strValue, m_sFileName);}
{
if(!fCreated)return FALSE;
CString strValue;
time_t lDate=Value.GetYear()*10000 + Value.GetMonth()*100 + Value.GetDay();
strValue.Format("%d", lDate);
return WritePrivateProfileString(Section, Ident, strValue, m_sFileName);}BOOL CIniFileEx::ReadValue(CString Section, CString Ident, CTime &Value, CTime defValue)
{
char *pstrReturn=new char[30];
CString strDef="";
time_t lDate=defValue.GetYear()*10000 + defValue.GetMonth()*100 + defValue.GetDay();
strDef.Format("%d", lDate); if(!GetPrivateProfileString(Section, Ident, strDef, pstrReturn, 30, m_sFileName)){
Value=defValue;
delete []pstrReturn;
return FALSE;
}
lDate = atol(pstrReturn);
//Value = CTime(lDate);
int y,m,d;
y=(lDate/10000)%10000;
m=(lDate/100)%100;
d=lDate%100;
CTime tmpT(y,m,d,0,0,0);
Value = tmpT; delete []pstrReturn;
return TRUE;
}
[email protected]
char chId[50];
CString strId;
CString strNamd="ASDFGH";
DWORD dwLen=20;
char szTemp[255]={0};char strGetNamd[50]={0};
int iGetId;
CString strGetId;::GetCurrentDirectory(250,szTemp);
strcat(szTemp,"\\test.ini");
itoa(id,chId,10);
strId=(CString)chId;
::WritePrivateProfileString("项目","ID",strId,szTemp);
::WritePrivateProfileString("项目","NAMD",strNamd,szTemp);iGetId=::GetPrivateProfileInt("项目","ID",1234,szTemp);
::GetPrivateProfileStrin("项目","NAMD","s",strGetNamd,dwLen,szTemp);
//strGetId.Format("%d",iGetId);
//AfxMessageBox(strGetId);
//AfxMessageBox(strGetNamd);
key1=value1
key2=value2
[section1]
key1=value1
key2=value2只是支持单行的Value值,不过可以改写为支持多行Value值
想要吗?