郁闷,为什么得不到预期的结果?请帮忙看看
文本文件格式如下:D:\delphi源码\读入文本\my_text.txt(其格式见下面4行)----
nihao1 ¦58123 ¦00:00:00 ¦00:01:00 ¦00:09:00
nihao2 ¦58124 ¦00:00:20 ¦00:01:20 ¦00:09:20
nihao3 ¦58125 ¦00:00:40 ¦00:01:40 ¦00:09:40
nihao4 ¦58126 ¦00:00:50 ¦00:01:50 ¦00:09:50
我的要求是将上面的文本文件转换格式后显示在Tlistview控件上显示为----
nihao1 58123 00:00:00 00:01:00 00:09:00
nihao2 58124 00:00:20 00:01:20 00:09:20
nihao3 58125 00:00:40 00:01:40 00:09:40
nihao4 58126 00:00:50 00:01:50 00:09:50
代码如下:
procedure TForm1.Button1Click(Sender: TObject);
var
DstList:TStringList;
strList:TStringList;
i,j:Integer;
Item:TListItem;//需要在uses里加上ComCtrls,否则会出错
begin
DstList:=TStringList.Create;
strList:=TStringList.Create;
try
DstList.LoadFromFile('D:\delphi源码\读入文本\my_text.txt');
for i:=0 to DstList.Count-1 do
begin
strList.Clear;
ExtractStrings(['|'],[ ],PChar(DstList[i]),strList);
if strList.Count=0 then Continue;
Item:=lvService.Items.Add;
Item.Caption:=strList[0];
for j:=1 to strList.Count-1 do
Item.SubItems.Add(strList[j]);
end;
finally
strList.Free;
DstList.Free;
end;
end;
为什么程序运行后在Tlistview控件上显示为(这不是我的目的):
nihao1 nihao2 nihao3 nihao4
我的目的是显示为:
nihao1 58123 00:00:00 00:01:00 00:09:00
nihao2 58124 00:00:20 00:01:20 00:09:20
nihao3 58125 00:00:40 00:01:40 00:09:40
nihao4 58126 00:00:50 00:01:50 00:09:50请帮忙看看,我的程序哪里有问题。先谢谢了!!!
文本文件格式如下:D:\delphi源码\读入文本\my_text.txt(其格式见下面4行)----
nihao1 ¦58123 ¦00:00:00 ¦00:01:00 ¦00:09:00
nihao2 ¦58124 ¦00:00:20 ¦00:01:20 ¦00:09:20
nihao3 ¦58125 ¦00:00:40 ¦00:01:40 ¦00:09:40
nihao4 ¦58126 ¦00:00:50 ¦00:01:50 ¦00:09:50
我的要求是将上面的文本文件转换格式后显示在Tlistview控件上显示为----
nihao1 58123 00:00:00 00:01:00 00:09:00
nihao2 58124 00:00:20 00:01:20 00:09:20
nihao3 58125 00:00:40 00:01:40 00:09:40
nihao4 58126 00:00:50 00:01:50 00:09:50
代码如下:
procedure TForm1.Button1Click(Sender: TObject);
var
DstList:TStringList;
strList:TStringList;
i,j:Integer;
Item:TListItem;//需要在uses里加上ComCtrls,否则会出错
begin
DstList:=TStringList.Create;
strList:=TStringList.Create;
try
DstList.LoadFromFile('D:\delphi源码\读入文本\my_text.txt');
for i:=0 to DstList.Count-1 do
begin
strList.Clear;
ExtractStrings(['|'],[ ],PChar(DstList[i]),strList);
if strList.Count=0 then Continue;
Item:=lvService.Items.Add;
Item.Caption:=strList[0];
for j:=1 to strList.Count-1 do
Item.SubItems.Add(strList[j]);
end;
finally
strList.Free;
DstList.Free;
end;
end;
为什么程序运行后在Tlistview控件上显示为(这不是我的目的):
nihao1 nihao2 nihao3 nihao4
我的目的是显示为:
nihao1 58123 00:00:00 00:01:00 00:09:00
nihao2 58124 00:00:20 00:01:20 00:09:20
nihao3 58125 00:00:40 00:01:40 00:09:40
nihao4 58126 00:00:50 00:01:50 00:09:50请帮忙看看,我的程序哪里有问题。先谢谢了!!!
解决方案 »
- 一个保持数据同步的问题????
- 货币格式问题求救
- 请问大家,如何用ReportMachine 实现多重分组打印啊!!!先谢谢了
- 关于视图的问题???????????????
- 高手,如何让dbgrid中某一行的readonly为true,其余为FALSE????????
- 数据类型转换问题! byte&char to string 在线等。。。。。
- Inherited 应该如何用呢?我自己作了一个样本程序,这个样本里面如何体现 inherited 的作用呢?~
- idFTP如何上传整个目录?
- 求助!用的Timage做的按钮 碰到的一个问题..
- RegisterClass 是做什么用的?有什么意义?
- 控件能作为函数参数吗?
- 发布 办公OA管理软件
var
DstList:TStringList;
strList:TStringList;
i,j:Integer;
Item:TListItem;//需要在uses里加上ComCtrls,否则会出错
begin
DstList:=TStringList.Create;
strList:=TStringList.Create;
strList.Delimiter := '¦';
try
DstList.LoadFromFile('D:\delphi源码\读入文本\my_text.txt');
for i:=0 to DstList.Count-1 do
begin
strList.DelimitedText := DstList[i];
Item:=lvService.Items.Add;
Item.Caption:=strList[0];
for j := 1 to strList.Count-1 do
Item.SubItems.Add(strList[j]);
end;
finally
strList.Free;
DstList.Free;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
DstList:TStringList;
strList:TStringList;
i,j:Integer;
Item:TListItem;//需要在uses里加上ComCtrls,否则会出错
begin
DstList:=TStringList.Create;
strList:=TStringList.Create;
try
DstList.LoadFromFile('D:\aa.txt');
//strList.Delimiter:='|';
for i:=0 to DstList.Count-1 do
begin
strList.Clear;
ExtractStrings(['|'],[],PChar(DstList[i]),strList);
//strList.CommaText := DstList[i];
if strList.Count=0 then Continue;
Item:=lvService.Items.Add;
Item.Caption:=strList[0];
for j:=1 to strList.Count-1 do
Item.SubItems.Add(strList[j]);
end;
finally
strList.Free;
DstList.Free;
end;
end;
nihao1 nihao2 nihao3 nihao4
正确的结果应显示为:
nihao1 58123 00:00:00 00:01:00 00:09:00
nihao2 58124 00:00:20 00:01:20 00:09:20
nihao3 58125 00:00:40 00:01:40 00:09:40
nihao4 58126 00:00:50 00:01:50 00:09:50
Item.Caption:=strList[0];
for j:=1 to strList.Count-1 do
Item.SubItems.Add(strList[j]); 这个写法有错误,做循环不安全。
你可以参考我下面的代码例子,一条一条来添加,反正行数也不多。
注释部分就是你要的结果。记得结帖给分,谢谢!T: TListItem; with dm.Q_WHOLE2 do
begin
close;
sql.clear;
sql.Add(v_sql_whole);
open;
if not isempty then
begin
first;
while not eof do
begin
T := ListView1.Items.Add;
T.Caption := trim(fieldbyname('PALLET').AsString); // nihao1
T.SubItems.Add(trim(fieldbyname('SEQ').AsString)); // 58123
T.SubItems.Add(trim(fieldbyname('SO').AsString)); // 00:00:00
T.SubItems.Add(trim(fieldbyname('SO_LINE').AsString)); // 00:01:00
T.SubItems.Add(trim(fieldbyname('SO_TQTY').AsString)); // 00:09:00
T.SubItems.Add(trim(fieldbyname('SO_IN_PALLET_TQTY').AsString));
T.SubItems.Add(trim(fieldbyname('SO_IN_PALLET_IQTY').AsString));
next;
end;
end
else
begin
end;
end;