文本格式,中间空格数量不一样,怎样按列读取,并写入xml中,谢谢
北京 5
041506 10.5 116.3 998 18 120 9999 11.7 114.0 990 23 13.4 111.8 985 25 15.8 110.6
041512 11.0 115.4 998 18 150 9999 12.2 113.1 990 23 13.9 111.4 985 25 16.0 109.9
041518 12.8 114.3 990 23 200 9999 14.7 111.5 980 30 16.2 110.0 985 25 18.1 108.9
041600 13.1 113.2 985 25 200 9999 15.0 110.8 980 30 16.9 109.5 985 25 19.5 108.3
041606 13.4 112.5 975 33 260 80 15.6 110.6 970 35 17.7 109.3 975 33 20.2 108.8 东京 5
041506 10.5 116.4 998 18 167 9999 11.3 113.6 994 21 12.8 111.6 992 11 13.9 109.7
041509 11.0 115.6 998 18 167 9999 11.7 113.3 994 21 9999.0 9999.0 992 11 9999.0 9999.0
041512 11.3 114.8 998 18 185 9999 12.7 113.0 992 23 14.0 111.1 990 12 16.1 109.0
041515 12.0 114.4 998 18 185 9999 13.2 112.6 992 23 9999.0 9999.0 990 12 9999.0 9999.0
041518 12.8 114.2 992 23 370 9999 15.2 112.2 985 26 16.8 111.0 980 13 18.5 110.0
北京 5
041506 10.5 116.3 998 18 120 9999 11.7 114.0 990 23 13.4 111.8 985 25 15.8 110.6
041512 11.0 115.4 998 18 150 9999 12.2 113.1 990 23 13.9 111.4 985 25 16.0 109.9
041518 12.8 114.3 990 23 200 9999 14.7 111.5 980 30 16.2 110.0 985 25 18.1 108.9
041600 13.1 113.2 985 25 200 9999 15.0 110.8 980 30 16.9 109.5 985 25 19.5 108.3
041606 13.4 112.5 975 33 260 80 15.6 110.6 970 35 17.7 109.3 975 33 20.2 108.8 东京 5
041506 10.5 116.4 998 18 167 9999 11.3 113.6 994 21 12.8 111.6 992 11 13.9 109.7
041509 11.0 115.6 998 18 167 9999 11.7 113.3 994 21 9999.0 9999.0 992 11 9999.0 9999.0
041512 11.3 114.8 998 18 185 9999 12.7 113.0 992 23 14.0 111.1 990 12 16.1 109.0
041515 12.0 114.4 998 18 185 9999 13.2 112.6 992 23 9999.0 9999.0 990 12 9999.0 9999.0
041518 12.8 114.2 992 23 370 9999 15.2 112.2 985 26 16.8 111.0 980 13 18.5 110.0
var
List:Tstringlist;procedure TForm1.Button1Click(Sender: TObject);
var
i,j,n:integer;
s:string;
printstr:array of array of string;
begin
List.LoadFromFile('new.txt');
SetLength(printstr,List.Count,17);
for i:=0 to List.count-1 do
begin
n:=0;
s:=List[i];
for j:=1 to Length(s) do
begin
if (Ord(s[j])=32) or (Ord(s[j])=9) then
begin
if (printstr[i,n]<>'') and (n<17) then
begin
showmessage(printstr[i,n]);
inc(n);
end;
end
else
if n<17 then printstr[i,n]:=printstr[i,n]+s[j];
end;
end;
end;