如何分段读取文本文件中的字符串,并为变量赋值。(50分)

  • 主题发起人 主题发起人 yuecheng
  • 开始时间 开始时间
Y

yuecheng

Unregistered / Unconfirmed
GUEST, unregistred user!
由一个公交车的文本文件gongjiao.txt格式如下
站名 站数
1路 12 天安门 前门 宣武门 ..
2路 15 中央大街 北京站 北京西站 ..
.. .. .. .. .. ..
.. .. .. .. .. ..
有三个变量:
cheName: string;
zhanshu: integer;
zhanName: ARRAY [1..30] of char;
我如何读取文件,才能让
cheName=1路 zhanshu=12 zhanName[1]=天安门 zhanName[2]=前门 ..
 
procedure TForm1.Button2Click(Sender: TObject);
var S:String;
cheName: string;
zhanshu: integer;
zhanName: ARRAY [1..30] of String;
I,J:Integer;
begin
S:='1路 12 天安门 前门 宣武门';
I:=Pos(' ',S);
cheName:=Copy(S,1,I-1);
S:=Trim(Copy(S,I,Length(S)));
I:=Pos(' ',S);
zhanshu:=StrToInt(Copy(S,1,I-1));
S:=Trim(Copy(S,I,Length(S)));
J:=1;
while Pos(' ',S)>0 do
begin
I:=Pos(' ',S);
zhanName[J]:=Copy(S,1,I-1);
S:=Trim(Copy(S,I,Length(S)));
Inc(J);
end;
zhanName[J]:=S;
ShowMessage(cheName);
end;
 
这种格式的。TXT文件是可以当做数据库直接读取的。去查原来的贴!
 
txtline:='1路 12 天安门 前门 宣武门';
SLTemp:=TStringList.Create;
ExtractStrings([' ',#9],[],PChar(txtline),SLTemp);
cheName:=SLTemp[0];
zhanshu:=StrToInt(SLTemp[1]);
//我下面假设每行后面列出的车站数组的元素个数就是前面的zhanshu
//如果不是这样,可以改为for i:=1 to SLTemp.Count-2 do
for i:=1 to zhanshu do zhanName:=SLTemp[i+1];
SLTemp.Free;
 
后退
顶部