关于BCB里面读取INI文件的一个问题。百思不得其解。请教各位了。谢谢!
以下是一个从ini文件读信息的程序片断.不能返回正确的结果.请教大家了.
s="CARD"+IntToStr(nCardNo)+IntToStr(nChannelNo);
// 以下从配置文件中读信息到结构中。
CardConfInfo.ushSlotExtractMode = ini->ReadInteger(s,"时隙提取",2);
//上面这句总是返回2,而不是ini文件里面的值,调试时,可以通过.当把鼠标放在等号右
//边的时候.显示:ini->ReadInteger=E2027Must take address of a memory location
CardConfInfo.strFileDir = ini->ReadString(s,"目标文件存放路径",2);
//而紧接着的这一句是正确的,返回了ini里面正确的值
这是什么原因呢,会不会是因为等号左面是USHORT类型的,可能不是,ini->ReadInteger好像没有得到正确的值.下一个语句是正确的.可以排除一些错误.
ini文件的相关部分是如下:
[CARD00]
时隙提取=0 # 0--单载波 1--需要提取
目标文件存放路径=d:\card11data
我是第一次用Builder(以前用VC),也是第一次用ini文件.不知道错误在哪里.
象我这种选0,1,2等几个的值用USHORT类型可以吗?
问题点数:40、回复次数:2Top
1 楼futulove(福途£爱)回复于 2004-10-03 11:10:51 得分 0
什么呀Top
2 楼lovebcb(京华:开心人生)回复于 2004-10-03 13:27:16 得分 40
#include <inifiles.hpp>
TIniFile *pIniFile = new TIniFile(ChangeFileExt( ExtractFilePath(Application->ExeName), "a.ini" ));
AnsiString s="CARD"+IntToStr(nCardNo)+IntToStr(nChannelNo);
CardConfInfo.ushSlotExtractMode = ini->ReadInteger(s,"时隙提取",2);
CardConfInfo.strFileDir = ini->ReadString(s,"目标文件存放路径",2);
delete pIniFile;
// 应该是你的ini文件没有被正确被指到 :)
Top




