读书人

【100分】VS2005 读取TXT内容并显示到

发布时间: 2012-12-25 16:18:28 作者: rapoo

【100分求救】VS2005 读取TXT内容并显示到comboBox中
效果图如下:
【100分】VS2005 读取TXT内容并显示到comboBox中

我的系统配置参数存在machType.sav文件中,能使用记事本编辑,内容如下:


Header 1
Header 2
MACH_6450=0
协议盒TYPE=0
蓝牙类型=2
分体机=0
ui_type=1
支持键扫=0


现在想实现的就是点击“保存”按钮就将文件中对应的属性读取并显示到对应的combobox中,我的测试显示代码如下:

//保存按键点击事件
private: System::Void btnSave_Click(System::Object^ sender, System::EventArgs^ e) {

char* fileDir = "E:\\ModifyData\\ModifyData\\sd\\ndfh\\system_init\\matchType.sav";
char* readBuf;
char header[BUFSIZE];
FILE* fp;

readBuf = (char*)malloc(BUFSIZE);

if((fp = fopen(fileDir,"r"))==NULL){
printf("can not open the file: %s",fileDir);
exit(-1);
}

/*
if((fgets(readBuf,BUFSIZE,fp))!=NULL){
cmbMach_6450->Text = gcnew String(readBuf);
}
*/


char key[ARGS_NUM][BUFSIZE] = {"MACH_6450","协议盒TYPE","蓝牙类型","分体机","ui_type","支持键扫"};
char cmbName[ARGS_NUM][BUFSIZE] = {"cmbMach_6450","cmbProtocol","cmbBTtype","cmbSeparate","cmbUI_type","cmbKey"};
char value[ARGS_NUM][10]; //属性值
char keyBuf[BUFSIZE],valueBuf[10],cmbNameBuf[BUFSIZE];

fgets(header,sizeof(readBuf),fp);
fgets(header,sizeof(readBuf),fp);//先把前面两行读走

while((fgets(readBuf,sizeof(readBuf),fp))!=EOF){
sscanf(readBuf,"%s=%s",keyBuf,valueBuf);
for(int i=0;i<ARGS_NUM;i++){
if(keyBuf == key[i]){
cmbNameBuf = cmbName[i]; //根据keyBuf 找到对应的comboBox控件的名称
/* 该怎么添加代码,把对应的valueBuf值填到对应的name= cmbNameBuf的comboBox中去呢?*/
}
}

}

fclose(fp);
}


我不知道该怎么通过cmbNameBuf 找到对应的combobox控件,然后设置他的值,请大家不吝赐教 ,先谢谢大家了
[解决办法]
combobox控件的Tag属性绑定上combobox控件的名称
foreach (ComboBox cbo in this.Controls)
{
if (cbo.Tag.ToString() == "控件名称字符串")
{
cbo.Items.Add(你要加的值);
}
}
C#描述的(不会C++) 但是你应该能听懂
[解决办法]
稍后我给你上代码
[解决办法]
sscanf(readBuf,"%s=%s",keyBuf,valueBuf); 
应改为
sscanf(readBuf,"%[^=]=%s",keyBuf,valueBuf);

读书人网 >C++

热点推荐