0

我的老师让我创建一个简单的项目:创建一个用户必须完成的表单,当他按下提交按钮时,程序应该将所有信息写入不同的文本文件(例如,1 个文本文件作为他们的名字,另一个是他们的姓氏等)(我知道这听起来很疯狂,但一个项目就是一个项目)。无论如何,我试过这个:

procedure TForm1.Button1Click(Sender: TObject);   //On Click
var 
F:Array[1..20]of textfile;                        //20 fields, 1 txt each one
Firstname,Fname:string;                           //Location,Field

Begin
Firstname:=ExtractFilePath(Paramstr(0))+'User\Identity\FirstName.txt'; //Location
Fname:=Edit1.text;

AssignFile(f[1],Firstname);
Rewrite(f[1],Firstname);
writeln(f[1],Fname);
closefile(f[1]);
end;

我在谷歌上搜索了这个错误:

I/O 错误 102,

我发现的是,由于某些原因,delphi 没有分配文件。但我仍然不明白为什么,代码对我来说看起来绝对正确且合乎逻辑,也许我尝试过:

F:Array[1..20]of Textfile 是错误的,我尝试它的唯一原因是因为我想开始写 f1,f2,...,f20

你觉得我应该怎么做?谢谢

4

1 回答 1

1

的第二个参数Rewrite不应该是字符串。它甚至可以编译吗?IIRC,根本不应该有第二个论点。您对目录有写权限吗?该目录甚至存在吗?我认为 RTL 不会为您创建它。如果这确实是您的问题,只需执行

ForceDirectories(ExtractFilePath(FileName)); // FileName=Firstname

在调用之前Assign

于 2013-05-12T11:35:20.553 回答