敬问高手:
小弟刚学Delphi,现在有一个TListView控件,我在程序里对它进行增加,删除操作,最后把结果保存进一个文本文件。
1, 现在发现增加值没有问题,我是这样做的:
InputString1:= InputBox('输入单位代号', '单位代号', '');
InputString2:= InputBox('输入单位名称', '单位名称', '');
with listview1 do
if (AnsiLastChar(InputString1)<>nil) and (AnsiLastChar(InputString2)<>nil) then
begin ListItem := Items.insert(selected.index);
ListItem.Caption := InputString1;
ListItem.SubItems.add(InputString2);
end;2,但是如何取编辑后的各列值以便写进文本文件呢?
我是这样做的:
var
F :TextFile;
s1:string[6];
s2:string[40];
i:integer;
listitem:TListitem;
AssignFile(F,'dwxx.txt');
rewrite(F);
with listview1 do
begin
if items.count >0 then
for i:=0 to items.count do
begin
listItem := Items.Add;
listitem:=items.item[i];
s1:=listitem.caption;
s2:=listitem.SubItems.text;
writeln(F,s1,s2);
end;
end;
但是这样就造成文本当中有空行,下次读文本文件时就把空行都读出来了。
请问如何解决?
小弟刚学Delphi,现在有一个TListView控件,我在程序里对它进行增加,删除操作,最后把结果保存进一个文本文件。
1, 现在发现增加值没有问题,我是这样做的:
InputString1:= InputBox('输入单位代号', '单位代号', '');
InputString2:= InputBox('输入单位名称', '单位名称', '');
with listview1 do
if (AnsiLastChar(InputString1)<>nil) and (AnsiLastChar(InputString2)<>nil) then
begin ListItem := Items.insert(selected.index);
ListItem.Caption := InputString1;
ListItem.SubItems.add(InputString2);
end;2,但是如何取编辑后的各列值以便写进文本文件呢?
我是这样做的:
var
F :TextFile;
s1:string[6];
s2:string[40];
i:integer;
listitem:TListitem;
AssignFile(F,'dwxx.txt');
rewrite(F);
with listview1 do
begin
if items.count >0 then
for i:=0 to items.count do
begin
listItem := Items.Add;
listitem:=items.item[i];
s1:=listitem.caption;
s2:=listitem.SubItems.text;
writeln(F,s1,s2);
end;
end;
但是这样就造成文本当中有空行,下次读文本文件时就把空行都读出来了。
请问如何解决?
解决方案 »
- 恭喜 ft 大哥换新工作
- 这样处理发送消息与接收消息有什么问题吗?
- 不知道大家发现没,如果设置了adotable的filter后,dbgrid中的垂直滚动条会始终在中间,
- 主从表的子表增加数据后,重新建立主从关系的问题
- 请问paramCount和paramStr两个函数是什么意思,怎么用呢?
- 有关利用ms中的函数scardconnect()读手机sim卡的问题(很急!!)
- 各位高手给我翻译一下DELPHI的一段代码用C++BULIDER表示
- Happy Christmas!
- 如何判断一个程序是否结束
- delphi DataSnap REST 返回的sql类型是TEXT的Tdataset数据集
- 我ADVGRID6的控件组,在DLEPH7下通不过,总是说缺.PAS文件,其实它已经存在!为什么...
- 怎样读取另一个Delphi程序中的TStringGrid中的数据?
if items.count >0 then
for i:=0 to items.count do
begin
listItem := Items.Add;
listitem:=items.item[i];
s1:=listitem.caption;
s2:=listitem.SubItems.text;
writeln(F,s1,s2);
end;
end;
改为:
begin
for i:=0 to items.count-1 do
begin
listitem:=items[i];
s1:=listitem.caption;
s2:=listitem.SubItems.text;
writeln(F,s1,s2);
end;
end;—————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
—————————————————————————————————
F :TextFile;
s1:string[6];
s2:string[40];
i:integer;
listitem:TListitem;
AssignFile(F,'dwxx.txt');
rewrite(F);
with listview1 do
begin
if items.count >0 then
for i:=0 to items.count-1 do
begin
listitem:=items.item[i];
s1:=listitem.caption;
s2:=listitem.SubItems.String[0];
writeln(F,s1,s2);
end;
end;
因为writeln会写入换行符,所以你读的时候要判断是否读到了换行符,否则会有空白行—————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
—————————————————————————————————