这是我的数据分拣程序:
procedure TForm1.Button1Click(Sender: TObject);
var
ASource, ALien,s: TStringList;
i: Integer;
begin
ASource := TStringList.Create;
ALien := TStringList.Create;
s:=TStringList.Create;
ASource.LoadFromFile(d:\1.txt);
for i := 0 to ASource.Count - 1 do
begin
ALien.Clear;
ExtractStrings([' '], [],pchar(ASource.Strings[i]) , ALien);
s.Add(ALien.Strings[6]+' '+ALien.Strings[7]+' '+ALien.Strings[8]);
s.SaveToFile(d:\2.txt);
end;end;
但是现在发现提取出来的数据都错位了,数据本来应该是以右边冒号对齐,但是现在数据提取后都变成了以左数字对齐。大侠们有没有办法解决我这个问题啊!!!!!
735: 11: 22:
805: 7: 113:
133: 54: 22:
857: 7: 272:
805: 32: 20:
procedure TForm1.Button1Click(Sender: TObject);
var
ASource, ALien,s: TStringList;
i: Integer;
begin
ASource := TStringList.Create;
ALien := TStringList.Create;
s:=TStringList.Create;
ASource.LoadFromFile(d:\1.txt);
for i := 0 to ASource.Count - 1 do
begin
ALien.Clear;
ExtractStrings([' '], [],pchar(ASource.Strings[i]) , ALien);
s.Add(ALien.Strings[6]+' '+ALien.Strings[7]+' '+ALien.Strings[8]);
s.SaveToFile(d:\2.txt);
end;end;
但是现在发现提取出来的数据都错位了,数据本来应该是以右边冒号对齐,但是现在数据提取后都变成了以左数字对齐。大侠们有没有办法解决我这个问题啊!!!!!
735: 11: 22:
805: 7: 113:
133: 54: 22:
857: 7: 272:
805: 32: 20:
解决方案 »
- TFormResizer 我怎么在Delphi中找不到?
- FastReport4forCodeGearRADStudioDelphiCBuilder2009.exe 安装出错,如何处理?
- 如何封装自己的数据库比如:ACCESS
- 请教一个与sql server 2000有关的问题,在线等待...
- 关于在Delphi中使用查询控件时如何实现我所想要的格式?请大家多多帮忙。
- 求一程序(超小)
- 关于timer的简单问题
- 請問ADODataSet1.Locate的準確查詢是如何用的?
- 很不明白,delphi +ado + access 报的 Invalid variant type conversion 错误,
- 急!急!急!关于delphi的midas 的问题
- 请教高手???如何做这样的这样的曲线????
- 关闭窗体问题?????
改:
s.Add(ALien.Strings[6]+' '+ALien.Strings[7]+' '+ALien.Strings[8]);
为
s.Add(Format('%-8s%8s%8s',[ALien.Strings[6],ALien.Strings[7],ALien.Strings[8]]));
s.Add(Format('%-8s%4s%8s',[pchar(ALien.Strings[0]),ALien.Strings[1],ALien.Strings[3]]));
就可以了(列数从0开始)
for i := 0 to ASource.Count - 1 do
为
for i := 1 to ASource.Count - 2 do
ASource.LoadFromFile(d:\1.txt);
s.add(ASource.Strings[0]);
for i := 1 to ASource.Count - 2 do
begin
ALien.Clear;
ExtractStrings([' '], [],pchar(ASource.Strings[i]) , ALien);
s.Add(Format('%-8s%4s%8s',[pchar(ALien.Strings[0]),ALien.Strings[1],ALien.Strings[3]]));
end;
s.add(ASource.Strings[ASource.Count -1]);
s.SaveToFile(d:\2.txt); //要将它移到循环外,否则,循环一次,写一次文件
2.list index out of bounds(0),可能是你的1.txt有空行
可这样改试试
ExtractStrings([' '], [],pchar(ASource.Strings[i]) , ALien);
if ALien.count>0 then
begin
s.Add(Format('%-8s%4s%8s',[pchar(ALien.Strings[0]),ALien.Strings[1],ALien.Strings[3]])); end;
if ALien.count>=3 then