怎样将listview中的内容保存到一个文本文件中?
我想将中listview的文件名保存到一个TXT文件中,如下格式,另外怎样将TXT文件中的内容反读到listview中呢例子:
C:\My Documents\aaa.ico
D:\Netlog.txt
C:\Program Files\WinRAR.exe
我想将中listview的文件名保存到一个TXT文件中,如下格式,另外怎样将TXT文件中的内容反读到listview中呢例子:
C:\My Documents\aaa.ico
D:\Netlog.txt
C:\Program Files\WinRAR.exe
解决方案 »
- Delphi 是如何封装标准控件的?如EDit控件
- 请教delphi中怎样将两个integer合成一个int64
- 如何用winsock实现HTTP客户端?
- 求解adoquery2.SQL.Text中的SQL太长怎么办?
- 请问:Infopower控件如何汉化?还有就是如何改InfoPower控件窗体的字体?
- Delphi5企业版升级d5ent_update时,总是出错!但有进会成功!出错后原来的DEPHI5也不能用!如何解决?
- 可不可以共用一个TDatasource控件?
- c/s中客户端更新数据的问题?
- 怎样在已编译好的DLL文件中写入字符。或在写入可执行文件中。
- 怎样才可以想在什么地方输出文字,就在什么地方输出啊!!用什么方法!!
- 数据查询问题,请指教
- 關於dbgrid的一個小問題
i: integer;
li:TListItem;
ss:=TStringList.Create();
ss.LoadFormFile("wj.txt");
for i:=0 to ss.Count-1 do
begin
li:=ListView1.items.add;
li.Caption:=ss.Strings[i];
end;
ss.free;
你们的星星都很多,应该是回答了别人很多问题了,这样看来你们的水平应该很不错才是,但是为什么你自己问的问题却都是如此低级呢?
真是报歉,我比较直率了一点.话说回来,您的问题真的比较简单,无非是把LV中的一个item作为一行,然后把item.caption和item.subitems[]中间加上分隔符作为一个字串一行行写入就行了;读文件一行行读入,然后用分隔符把每段找出重新写回LV就行了.
我也感觉很奇怪。
如果是多列的话可用TIniFile把listitem.catpion存为Section
把listitem.subitems存为Key
结构如下
[Section1]
key1
key2
...
[Section2]
key1
key2
...读取如下,保存同理。
var
AppIni: TIniFile;
LI:TListItem;
s:stringlist;
i:integer;
begin
AppIni := TIniFile.Create('Example.INI');
s:=tstringlist.create;
AppIni.ReadSections(s);
for i:=0 to s.count-1 do
begin
li:=ListView1.items.add;
li.Caption:=s.Strings[i];
AppIni.ReadSection(s.name[i],li.subitems);
end;
s.free;
AppIni.Free;
end;
速度很快.代码在单位,没有拿回家来,而我单位的机器不能上网,所以现在稍写一下:1、保存:
var
i,j : integer;
s : string;
ts : tstringlist;
begin
ts := tstringlist.create;
with listview1 do begin
for i := 0 to items.count -1 do begin
s := items[i].caption;
for j := 1 to Columns.Count -1 do begin
s := s +'^'+items[i].subitems[j-1];
end;
ts.add(s);
end;
ts.savetofile('log1.log');
ts.free;
end;2、读取
两个过程:
a.procedure GetItems(s : string;var aList : array of string);
var
p,i : integer;
begin
i := -1;
s := s +'^';
repeat
p := pos('^',s);
if p > 0 then begin
Inc(i);
aList(i) := copy(s,1,p-1);
s := copy(s,p+1,length(s)-p);
end;
until(p=0);
end;b:LoadFromFile(FileName : string);
var
aItem : TListItem;
i,j : integer;
ts : tstringlist;
alist : array[0..COLUMNS] of string;
begin
ts := tstringlist.create;
ts.loadfromfile(FileName);
ListView1.Items.BeginUpdate;
for i := 0 to ts.count -1 do begin
aItem := ListView1.Items.Add;
GetItems(ts[i],aList);
aItems.caption := alist[0];
for j := 1 to listview1.columns.count -1 do
aItems.SubItems.Add(aList[j]);
end;
ListView1.Items.EndUpdate;
ts.Free;
end;自己凭印象写的,没有检查过,可能有错误,请核对一下。
这样的好处是,这样生成的文件很容易变成表格。
procedure LoadToListView(LV:TListView);
var
temp:string;
sl:TstringList;
i,j:integer;
begin
sl:=TstringList.create;
sl.LoadFromFile('e:\aaaa.txt');
for i:=0 to sl.Count-1 do
begin
LV.Items.Add;
temp:=sl[i];
j:=pos('^',temp);
while j<>0 do
begin
if LV.Items[i].Caption='' then
LV.Items[i].Caption:=copy(temp,0,j-1)
else
LV.Items[i].SubItems.Add(copy(temp,0,j-1));
delete(temp,1,j);
j:=pos('^',temp);
end;
LV.Items[i].SubItems.Add(temp);
end;
end;