如何让Delphi从特定行读取到文本文件中的某一行

时间:2016-10-23 16:13:25

标签: delphi text-files

我刚开始使用Delphi,我现在不使用数据库,这只是我正在做的练习(文本文件)

我的程序表单设置如下:

enter image description here

这就是我的文本文件中的内容:

enter image description here

描述:如果用户想要查看国际象棋比赛,他们必须输入国际象棋比赛名称,然后程序必须查找国际象棋比赛名称然后从该线读取所有内容,直到它到达“-------------------------”,然后它必须将其显示在Rich Edit组件

这是我的代码:

begin
  AssignFile(tFile, 'ChessRecords.txt');
  Reset(tFile);
  while not Eof(tFile) do
    begin
      sGameName:= '';
      Readln(tFile, sLine);
      iPos:= Pos('/', sLine);
      sGameName:= Copy(sLine, 1,iPos-1);
      if sGameName = edtGameName.Text then
        begin
          repeat
            redOut.Lines.Add(sLine);
          until (sLine = '-------------------------');
        end;
      end;
    end;    
end.

1 个答案:

答案 0 :(得分:2)

您的repeat until循环不再从文件(Readln())中读取 - 您还必须这样做(并检查Eof())。同样,每次调用该函数时,您也可以执行Inc( iLine ),但我没有看到您想要计算行数的原因。

Rob Kennedy MartynA ZENsan 是正确的:您的方法不是最新的,但仍坚如磐石仍将在20年内执行