读取的问题~~~~~~~~~~~~

lily0423 2006-08-16 03:50:13
我有一个文件里面有一些关键字象FX,FY都是独立一行写的!!有很多的FX,但只有一个FY
我想从第一个FX取得下面的数据!!但我这样写总是取的最后一个FX到FY 的,
我应如何定位FX第一次出现的位置啊!!
stringlist1:=Tstringlist.Create;
stringlist2:=Tstringlist.Create;
stringlist1.LoadFromFile(OpenDialog.FileName);
for i:=0 to stringlist1.Count-1 do
begin
if stringlist1[i]='FX' then i1:=i;
if stringlist1[i]='FY' then i2:=i;
end;
for i:=i1 to i2 do
begin
stringlist2.Add(stringlist1[i]);
end;
...全文
146 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lily0423 2006-08-17
  • 打赏
  • 举报
回复
谢谢各位了~~~解决了啊 !!
hxfjb 2006-08-16
  • 打赏
  • 举报
回复
没有break
OO_is_just_P 2006-08-16
  • 打赏
  • 举报
回复
看着列表里回复是0,进来之后晕了。
xixuemao 2006-08-16
  • 打赏
  • 举报
回复
for i:=0 to stringlist1.Count-1 do
begin
if stringlist1[i]='FX' then
begin
i1:=i;
break;
end;
end;
for i:=0 to stringlist1.Count-1 do
begin
if stringlist1[i]='FY' then
begin
i2:=i;
break;
end;
end;
andyzhou1101 2006-08-16
  • 打赏
  • 举报
回复
参考下

procedure TForm1.Button1Click(Sender: TObject);
var
sl:tstringlist;
i,j:integer;
begin
sl := tstringlist.Create;
sl.Text := memo1.Text;
i := sl.IndexOf('FX');
for j := i to sl.Count - 1 do
begin
memo2.Lines.Add(sl.Strings[j]);
end;
sl.Free;
end;
wudi_1982 2006-08-16
  • 打赏
  • 举报
回复
if stringlist1[i]='FX' then i1:=i;
找到fx之后,就break跳出循环。当然也可以用ron_xin(星雨)的办法。
wudi_1982 2006-08-16
  • 打赏
  • 举报
回复
var
fxf,fyf : boolean;
begin
stringlist1:=Tstringlist.Create;
stringlist2:=Tstringlist.Create;
stringlist1.LoadFromFile(OpenDialog.FileName);
for i:=0 to stringlist1.Count-1 do
begin
if stringlist1[i]='FY' then i2:=i;
if stringlist1[i]='FX' then begin
i1:=i;
break
end;

end;
for i:=i1 to i2 do
begin
stringlist2.Add(stringlist1[i]);
end;
ron_xin 2006-08-16
  • 打赏
  • 举报
回复
首部 function AnsiPos(const Substr, S: string): Integer; $[SysUtils.pas
功能 返回子串Substr在字符中第一次出现的位置
说明 不存在则返回0
参考 SysUtils.AnsiStrPos
例子 SpinEdit1.Value := AnsiPos(Edit1.Text, Edit2.Text);

5,939

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧