我在Delphi中做了一个小项目,但是在将多个列表框控件的项目保存到单个文件时遇到了问题。
我有4个列表框控件。保存按钮的代码为:
procedure TForm1.Button5Click(Sender: TObject);
begin
if SaveDialog1.Execute then
SaveDialog1.InitialDir := 'C:\MyProjects';
ListBox1.Items.SaveToFile(SaveDialog1.FileName + '.txt');
end;
这是项目的图片:
保存后我的ini文件如下所示
$ 22/01/2019
25/01/2019
21/01/2019
$ 22/01/2019
18/01/2019
06/01/2019
15/01/2019
31/12/2018
答案 0 :(得分:0)
SaveToFile()
的{{1}}和LoadFromFile()
方法不支持您要查找的内容。 TListBox.Items
会覆盖现有文件,而SaveToFile()
将按原样加载整个文件,因此不可能将多个列表框与它们一起存储到单个文件中。
您将需要更多地参与以自己的代码处理文件I / O。这意味着,您必须首先确定文件要使用的格式,然后才能为该格式编码。最重要的是文件的结构需要允许您区分哪些字符串属于哪个ListBox。
例如,您可以使用INI,XML,JSON等格式,其中有许多有用的类可用于它们,这些类既是Delphi本身的,也是3rd party的。并且有很多关于它们的文档和教程,因此在这里我将省略它们的代码示例。
例如:
INI
LoadFromFile()
XML
[ListBox1]
Count=...
Item1=...
Item2=...
Item3=...
[ListBox2]
Count=...
Item1=...
Item2=...
Item3=...
[ListBox3]
Count=...
Item1=...
Item2=...
Item3=...
[ListBox4]
Count=...
Item1=...
Item2=...
Item3=...
JSON
<lists>
<list name="ListBox1">
<item>...</item>
<item>...</item>
<item>...</item>
<item>...</item>
</list>
<list name="ListBox2">
<item>...</item>
<item>...</item>
<item>...</item>
<item>...</item>
</list>
<list name="ListBox3">
<item>...</item>
<item>...</item>
<item>...</item>
<item>...</item>
</list>
<list name="ListBox4">
<item>...</item>
<item>...</item>
<item>...</item>
<item>...</item>
</list>
</lists>
仅举几例。
或者,您可以设计自己的自定义文件格式来满足您的特定需求。例如:
{
"ListBox1": [
"...",
"...",
"..."
],
"ListBox2": [
"...",
"...",
"..."
],
"ListBox3": [
"...",
"...",
"..."
],
"ListBox4": [
"...",
"...",
"..."
]
}