gpt4 book ai didi

delphi - 在Delphi中打开/操作/保存TextFile

转载 作者:行者123 更新时间:2023-12-03 19:15:29 24 4
gpt4 key购买 nike

我是Delphi Noob,我已经搜索并逐步浏览了我的代码,但不明白为什么它会输出一个没有内容的文本文件。它应该在可以正常工作的对话框中打开一个文本文件,将选定的文件分配给origFile,然后我将该文件分配给另一个名为myFile的文件,这样我就可以在不更改实际原始文件的情况下进行操作,然后我想将myFile保存为(sOrigFileName + 'B.BACKWARDS.TXT'),但会跳过while not Eof(origFile) do并转到CloseFile。我在下面发布我的代码。

要求是使用TextFile vs TStringList,否则我会使用TStringList来做到这一点。另外一个问题是它指出找不到myFile,我以为assignFile(myFile, sOrigFileName);正在创建myFile...。

procedure TForm1.btnOpenFileCClick(Sender: TObject);
var
origFile, myFile : TextFile;
OpenDialog1 : TOpenDialog;
sOrigFileName, sNewFileName, sLine, sNewLine : String;

begin
//Selects txt File of the users choosing
OpenDialog1 := TOpenDialog.Create(self);
OpenDialog1.Filter := '*.txt';

if OpenDialog1.Execute then
begin
//AssignFile(origFile, OpenDialog1.FileName);
sOrigFileName := OpenDialog1.FileName;
AssignFile(origFile, sOrigFileName);
end;

//BACKWARDS
sNewFileName := sOrigFileName + '.B.BACKWARDS.TXT';
DeleteFile(sNewFileName); //Delete old File if exists
AssignFile(myFile, sNewFileName);

Reset(origFile);

while not Eof(origFile) do
begin
Rewrite(myFile);
Readln(origFile, sLine); //takes line into a string Var
sNewLine := AnsiReverseString(sLine); //reverses and places to new Var
WriteLn(myFile,sNewLine);
end;

//Clean up
CloseFile(OrigFile);
CloseFile(myFile);

最佳答案

在我看来,您需要将Rewrite(myFile)置于循环之外,紧随Reset(origFile)之后。

关于delphi - 在Delphi中打开/操作/保存TextFile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25272315/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com