如何在 free pascal 中编辑文本文件的特定部分?

How do i edit a specific part of a text file in free pascal?

正如标题所说,我该怎么做?我知道 append 命令将文本添加到文件末尾,但我不想这样做,也不想重写整个文本文件。我只想编辑文本文件的特定部分。

这是我的场景:

我在文本文件中有不同的数据行,我想做的是将特定行编辑到用户输入中。我已经编码下来的是找到要编辑的行,然后用户输入要更改的数据,一切正常,没有问题,但是我完全不知道如何更改数据用户输入的文本文件。

编辑:在令人沮丧地玩了一会儿之后,这就是我的想法,但它不起作用,错误 106。

 If s = 'N' Then
  Begin
    Writeln();
    Writeln('Please enter the correct data');
    Append(sf);
    Readln(sData);
    Writeln(sf, sData);
    Close(sf);
  End;

还要注意,我没有在这段代码之前关闭文件,但我有一个 EOF 来阻止之前的代码在中断之前进行不必要的循环,我在这段代码的末尾关闭文件并且再次在另一个街区。无论哪种方式,文件都会关闭,但我只会收到那些块的错误。

感谢您的评论,使用 TStringList 过程我的程序按我想要的方式工作。

我所做的是使用 TStringList.LoadFile 加载文件,因为我正在搜索的数据具有固定模式,所以我能够使用固定索引搜索和索引文件 (即 Index = Index + 3), 删除数据文件中的索引行并插入新数据。