首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

双重循环退出有关问题

2013-04-07 
双重循环退出问题假设有一个文件 c:\test.txt同时有一数组:a:array[0..100] of string要求在文件中查出 a

双重循环退出问题
假设有一个文件 c:\test.txt

同时有一数组:  a:array[0..100] of string;

要求在文件中查出 a[i] 第一次出现的所在行数


var f:textfile;
    i,j:integer;
    s:string;
begin
    for i:=low(a) to high(a) do begin
       
       j:=0;
       assignfile(f,'c:\test.txt');
       reset(f);
       while not eof(f) do begin
         readln(f,s);
         j:=j+1; 
         if s=a[i] then begin
             memo1.lines.add(inttostr(j));
             continue;     
         end; 
       end;
       closefile(f);
    end;

运行后出现死循环

请高手指点,谢谢
[解决办法]
assignfile(f,'c:\test.txt');
效率低啊
[解决办法]
assignfile(f,'c:\test.txt');
放在循环中,效率低啊

事先加载到一个stringlist中
[解决办法]
用TStringList


procedure TForm2.Button1Click(Sender: TObject);
var
  slFile: TStringList;
  i,j:integer;
  s:string;
begin
  slFile := TStringList.Create;
  slFile.LoadFromFile('c:\test.txt');
  for i:=low(a) to high(a) do
    for j:=0 to slFile.Count - 1 do
      if slFile.Strings[j]=a[i] then
        memo1.lines.add(inttostr(j+1));
  slFile.Free;
end;

[解决办法]
Continue改成Break

热点排行