如何在 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), 删除数据文件中的索引行并插入新数据。
正如标题所说,我该怎么做?我知道 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), 删除数据文件中的索引行并插入新数据。