修改INI文件失败,为什么会这样?

hgb_kkh 2003-09-22 08:58:26
源码如下:
procedure TForm1.EndBClick(Sender: TObject);
var
FileName : string;
tempini : TIniFile;
begin
FileText.SaveToFile('temp.ini');
FileText.Free;
tempini := TIniFile.Create('temp.ini');
if (UnpackIndex-1>0)then
tempini.WriteInteger(ValueE.Text,'IFIELDS'+ValueE.Text,UnpackIndex-1);
if (PackupIndex-2>0)then
tempini.WriteInteger('PACKUP'+ValueE.Text,'OFIELDS'+ValueE.Text,PackupIndex-1);
showmessage('FIELDS = '+tempini.ReadString(ValueE.Text,'IFIELDS'+ValueE.Text,''));
tempini.Free;
FileText := TStringList.Create;
FileText.LoadFromFile('temp.ini');
end;

其中生成一个temp.ini文件,其中的正确格式如下:
[UNPACK]
KEYPOS =2
KEYLENGTH =4
[0004]
IFIELDS0004 =4


IFIELD00041STARTPOS =2
IFIELD00041LENGTH =4
IFIELD00041TYPE =0


IFIELD00042STARTPOS =6
IFIELD00042LENGTH =8
IFIELD00042TYPE =0


IFIELD00043STARTPOS =17
IFIELD00043LENGTH =1
IFIELD00043TYPE =0


IFIELD00044STARTPOS =20
IFIELD00044LENGTH =14
IFIELD00044TYPE =0

但是程序执行后,“FIELDS0004”一行只有“FIELDS0004=”而值没有赋上。
不过 showmessage('FIELDS = '+tempini.ReadString(ValueE.Text,'IFIELDS'+ValueE.Text,''));
却能显示 "FIELDS = 4",
请教大侠我应该如何是好?
...全文
209 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hgb_kkh 2003-09-22
  • 打赏
  • 举报
回复
re: idilent(成为星星的同时,露出菜鸟的实质)
Thanks!
果真要改成“tempini := TIniFile.Create(ExtractFilePath(Application.ExeName)+'temp.ini');”
再次多谢!
hgb_kkh 2003-09-22
  • 打赏
  • 举报
回复
re: idilent(成为星星的同时,露出菜鸟的实质)
FileText是一个TstringList变量(全局变量),
那个ini文件在“FileText.SaveToFile('temp.ini');”时存放在当前目录,
为什么直接“tempini := TIniFile.Create('temp.ini');”不行呢?
idilent 2003-09-22
  • 打赏
  • 举报
回复
好象是没有找到你的ini文件,你把这个ini放在那里了呢?
如果是exe所在目录的话,这样使用
tempini := TIniFile.Create(ExtractFilePath(Application.ExeName)+'temp.ini');

不知道
FileText.SaveToFile('temp.ini');
FileText.Free;这个是做什么的
Storm2008 2003-09-22
  • 打赏
  • 举报
回复
gz
bxh2dai 2003-09-22
  • 打赏
  • 举报
回复
哈哈,看不懂啊,给你顶啊
klbt 2003-09-22
  • 打赏
  • 举报
回复
超长的问题,帮你顶。

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧