[Delphi]ini保存Listbox的问题。

怎么保存Listbox中的所有Items,比如1111122222333334444455555我保存的时候写fori:=0toRzListBox_Test.Items.... 怎么保存Listbox中的所有Items,比如
11111
22222
33333
44444
55555

我保存的时候写
for i:=0 to RzListBox_Test.Items.Count-1 do
begin
myinifile.WriteString('ListBox','CeShi',RzListBox_Test.Items.Strings[i]);
end;

读取的时候写
RzListBox_Zj.Items.Add(myinifile.ReadString('ListBox','PickGoods',''));

这样只能读出来一个,我改了两下,有的时候第一行还是 '' 空的

哪位给个实例,能够全部保存下来,而且读取的时候第一行不为空?
已经解决,但是如果用户是第一次打开软件的话,Listbox的第一行是空的,不知道有没有解决方案。。

count:=myinifile.readinteger('ListBox','count',1);
with myinifile do
begin
for i:=0 to Count do
begin
RzListBox_Text.Items.Add(myinifile.ReadString('ListBox','CeShi'+IntToStr(i),''));
end;
end;

读取那里,默认第三个参数为空,除了我不让他默认为空外,还有没有其他方法,让第一行看着是空的,“实际”上也是空的,现在的情况是,看着是空的,但是鼠标能点到。
展开
 我来答
热烈还鲜丽丶柠檬3831
2009-10-24 · TA获得超过455个赞
知道小有建树答主
回答量:426
采纳率:0%
帮助的人:344万
展开全部
你上面的for i:=0 to Count do改成for i:=1 to Count do就行。
如果ReadString('ListBox','CeShi'+IntToStr(i),''));CeShi这个子项名不变的话,你只能得到最后一项的值,前面的就都覆盖掉了

这样,你不要用INI,直接读TXT
//保存listbox里面的项到'ListText.txt'文件
ListBox1.Items.SaveToFile(ExtractFilePath(Application.ExeName)+'ListText.txt');
//将'ListText.txt'文件里面的内容读入listbox
ListBox1.Clear;
ListBox1.Items.LoadFromFile(ExtractFilePath(Application.ExeName)+'ListText.txt')

这样很简便的

如果按照ini方法,你必须建立一个项,保存listbox的项目数量,然后再一条一条的读进来
这样
uses inifiles

//写出文件
var
system:TIniFile;
i:integer;
begin
system:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'ListText.ini'); //创建ini文件
system.writeinteger('系统配置','项目总数',ListBox1.count);
for i:=0 to ListBox1.count-1 do
begin
system.writestring('系统配置',Pchar('项目'+IntToStr(i)),ListBox1.Items.Strings[i]); //循环写入listbox里面的值
end;
system.Free;
end;

//读入文件
var
system:TIniFile;
a,i:integer;
begin
system:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'ListText.ini');
i:=system.Readinteger('系统配置','项目总数',0);
ListBox1.Clear;
for a:=0 to i-1 do
begin
ListBox1.Items.Add(system.ReadString('系统配置',Pchar('项目'+IntToStr(a)),''));
end;
system.Free;
end;
cb120520025
2009-10-24 · TA获得超过347个赞
知道小有建树答主
回答量:323
采纳率:0%
帮助的人:571万
展开全部
因为我不清楚你ini文件是怎麽设计的 如果程序一开始ini文件里面count的值默认是0的话 可以试下把for i := 0 to Count do改为for i := 1 to Count do 那么当count小于等于0的时候就不会在listbox里面添加行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式