概述
前言:
转载请附上连接,本帖原创请勿照抄。
MFC之读取ini文件,有详细示例以及Demo和说明。环境VS2017(如果版本不同请降低版本或者降代码复制你的项目中)。实现了对ini文件的添加、覆盖、读取。均是拿界面做出来的。
1.基本界面
2.选择文件
/**
*点击选择文件按钮弹出File选项框来进行选择ini文件,选择好ini文件之后会将选择的ini文件传给界面的编辑框
*/
void CMFCTestIniDlg::OnBnClickedButton5()
{
CString m_strFilePathName;
CFileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, _T("All Files(*.ini)|*.ini|所有文件(*.*)|*.*|"), NULL);
if (dlg.DoModal())
{
m_strFilePathName = dlg.GetPathName();
}
SetDlgItemText(IDC_EDIT1, m_strFilePathName);
}
3.查询功能
/**
*查询ini字段,根据编辑框的id来获得编辑框内的路径。进行查询字段
*/
void CMFCTestIniDlg::OnBnClickedButton1()
{
CFileFind finder;
CString IniFile = "";
GetDlgItem(IDC_EDIT1)->GetWindowText(IniFile);
//查找是否存在ini文件,若不存在,则生成一个新的默认设置的ini文件,这样就保证了我们更改后的设置每次都可用
BOOL ifFind = finder.FindFile(IniFile);
if (!ifFind)
{
AfxMessageBox("没有该文件");
return;
}
//返回编辑框查询到的字段
CString str;
GetPrivateProfileString("MYSQL","HostName", "", str.GetBuffer(MAX_PATH), MAX_PATH, IniFile);
SetDlgItemText(IDC_EDIT2, str);
GetPrivateProfileString("MYSQL", "Port", "", str.GetBuffer(MAX_PATH), MAX_PATH, IniFile);
SetDlgItemText(IDC_EDIT3, str);
GetPrivateProfileString("MYSQL", "UserName", "", str.GetBuffer(MAX_PATH), MAX_PATH, IniFile);
SetDlgItemText(IDC_EDIT4, str);
GetPrivateProfileString("MYSQL", "PassWord", "", str.GetBuffer(MAX_PATH), MAX_PATH, IniFile);
SetDlgItemText(IDC_EDIT5, str);
}
4.修改
/**
*根据编辑框id来获取ini文件路径,使用CFile File来清除之前的数据,在将界面的值写入ini文件中
*/
void CMFCTestIniDlg::OnBnClickedButton2()
{
CString IniFile = "";
GetDlgItem(IDC_EDIT1)->GetWindowText(IniFile);
CFile File;
//这个File用来清空ini文件里面的内容 如果需要直接在后面添加请屏蔽File
File.Open(IniFile, CFile::modeCreate | CFile::modeWrite, NULL);
File.Close();
CFileFind finder;
//查找是否存在ini文件,若不存在的话弹出提示
BOOL ifFind = finder.FindFile(IniFile);
if (!ifFind)
{
AfxMessageBox("没有该文件");
return;
}
CString str="",StrTop="MYSQL",StrHostName="HostName",StrPort="Port",StrUserName="UserName",StrPassWord="PassWord";
GetDlgItemText(IDC_EDIT6, str);
WritePrivateProfileStringW(StrTop.AllocSysString(), StrHostName.AllocSysString(), str.AllocSysString(), IniFile.AllocSysString());
GetDlgItemText(IDC_EDIT7, str);
WritePrivateProfileStringW(StrTop.AllocSysString(), StrPort.AllocSysString(), str.AllocSysString(), IniFile.AllocSysString());
GetDlgItemText(IDC_EDIT8, str);
WritePrivateProfileStringW(StrTop.AllocSysString(), StrUserName.AllocSysString(), str.AllocSysString(), IniFile.AllocSysString());
GetDlgItemText(IDC_EDIT9, str);
WritePrivateProfileStringW(StrTop.AllocSysString(), StrPassWord.AllocSysString(), str.AllocSysString(), IniFile.AllocSysString());
}
5.刷新
/**
*点击刷新按钮实现编辑框刷新
*/
void CMFCTestIniDlg::OnBnClickedButton4()
{
Edit();
}
void CMFCTestIniDlg::Edit()
{
SetDlgItemText(IDC_EDIT2, "");
SetDlgItemText(IDC_EDIT3, "");
SetDlgItemText(IDC_EDIT4, "");
SetDlgItemText(IDC_EDIT5, "");
SetDlgItemText(IDC_EDIT6, "");
SetDlgItemText(IDC_EDIT7, "");
SetDlgItemText(IDC_EDIT8, "");
SetDlgItemText(IDC_EDIT9, "");
}
最后
以上就是野性红酒为你收集整理的MFC读取ini文件(详细示例)的全部内容,希望文章能够帮你解决MFC读取ini文件(详细示例)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复