QQ登录

只需一步,快速开始

401上位机VC MFC实现参数的保存与加载

[ 复制链接 ]

401上位机VC MFC实现参数的保存与加载

401上位机VC MFC实现参数的保存与加载

实现参数的保存与加载
功能展示
上位机程序参数的读取保存是必不可少的功能,程序初始运行会加载参数,用户修改参数得保存参数。参数保存的位置,保存的方法有多种。例程演示操作文件进行参数的保存与加载,效果如图。设置完参数后点击<应用>参数多保存到例程根目录文件系统参数文件.par中,文件位置,名称,后缀都可自定义。点击<加载>可从文件加载参数,当前实际项目会在程序初始运行时调用<加载>按钮

要点提示
当前例程使用CStdioFile类实现文件的创建,写数据,读数据操作,类从Cfile派生,类中有两个成员函数ReadString()WriteString()非常方便逐行的写入与读取数据;
ReadString(CString &rString);
参数:rString;//CString类的字符串
返回值: 如果文件有多行,则当文件没有读完时,返回TRUE,读到文件尾,返回FALSE。
说明:读取一行文本到rString中,遇到回车换行符停止读取,回车和换行符均不读到rString中,尾部也不添加”0x00”。

WriteString( LPCTSTR lpsz );
将一个缓冲区中的数据写入与CStdioFile 对象关联的文件中。结束的空字符(“\0”)不被写入该文件。lpsz 中的所有换行符都被以一个硬回车换行符对写入该文件,即“\n”被转化成“\r\n”写入到文件里。
例程中传入的参数是Cstring 类型,所以换行符\r\n手动添加;

实现功能
1.新建基于对话框的应用程序
2.添加 保存参数的编辑框及复选框等,如例程添加了六个编辑框IDC_EDIT1---IDC_EDIT6及一个复选框作为参数保存与加载演示。添加两个按钮<加载><应用>关联按钮的点击函数,用于加载 与保存参数功能的实现
void CGkbc8Dlg::OnSave()
{
char cPath[_MAX_PATH];
GetModuleFileName(NULL,cPath,_MAX_PATH);
CString sFilePath(cPath);
sFilePath = sFilePath.Left(sFilePath.ReverseFind('\\')+1);
sFilePath += "系统参数文件.par";
//<>
CString sTemp;
CStdioFile File;
if(!File.Open(sFilePath,CFile::modeCreate|CFile::modeWrite) )
{
MessageBox("参数文件保存失败");
return;
}
int nData;
nData = GetDlgItemInt(IDC_EDIT1);
sTemp.Format("%d\r\n",nData);
File.WriteString(sTemp);
nData = GetDlgItemInt(IDC_EDIT2);
sTemp.Format("%d\r\n",nData);
File.WriteString(sTemp);
nData = GetDlgItemInt(IDC_EDIT3);
sTemp.Format("%d\r\n",nData);
File.WriteString(sTemp);
nData = GetDlgItemInt(IDC_EDIT4);
sTemp.Format("%d\r\n",nData);
File.WriteString(sTemp);
nData = GetDlgItemInt(IDC_EDIT5);
sTemp.Format("%d\r\n",nData);
File.WriteString(sTemp);
nData = GetDlgItemInt(IDC_EDIT6);
sTemp.Format("%d\r\n",nData);
File.WriteString(sTemp);
nData = ((CButton*)GetDlgItem(IDC_CHECK1))->GetCheck();
sTemp.Format("%d\r\n",nData);
File.WriteString(sTemp);
File.Close();

MessageBox("已保存参数");
}

void CGkbc8Dlg::OnLoad()
{
char cPath[_MAX_PATH];
GetModuleFileName(NULL,cPath,_MAX_PATH);
CString sFilePath(cPath);
sFilePath = sFilePath.Left(sFilePath.ReverseFind('\\')+1);
sFilePath += "系统参数文件.par";
//<>
CStdioFile File;
if(!File.Open(sFilePath,CFile::modeRead) )
{
MessageBox("参数文件读取失败");
return;
}
UINT nData,nIndex=0;
CString sTemp;
while(File.ReadString(sTemp) )
{
nData=atoi(sTemp);
if(nIndex==0)
SetDlgItemInt(IDC_EDIT1,nData);
if(nIndex==1)
SetDlgItemInt(IDC_EDIT2,nData);
if(nIndex==2)
SetDlgItemInt(IDC_EDIT3,nData);
if(nIndex==3)
SetDlgItemInt(IDC_EDIT4,nData);

if(nIndex==4)
SetDlgItemInt(IDC_EDIT5,nData);
if(nIndex==5)
SetDlgItemInt(IDC_EDIT6,nData);
if(nIndex==6)
((CButton*)GetDlgItem(IDC_CHECK1))->SetCheck(nData);
nIndex++;
}
if(nIndex<7)
MessageBox("参数文件读取失败");
}
可以选择可程序初始化函数OnInitDialog()里调用 OnLoad()实现参数的加载

我们来演示下功能实现的整个过程


请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:401.上位机VC MFC实现参数的保存与加载.zip 
文件大小:138.92 KB  售价:10金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我

  

如果您认可,可联系功能定制!

  

如果您着急,充值会员可直接联系发您资料!

  

QQ联系我

微信扫扫联系我

  

  

您的支持是我们创作的动力!  

  

您可花点闲钱积分自助任意充值

  

成为VIP会员 全站资源任意下载永久更新!






回复

使用道具 举报

快速回复 返回列表 客服中心 搜索