如何修复分配文件时的 I/O 错误 102

问题描述 投票:0回答:1

我的老师分配我创建一个简单的项目:创建一个表单,用户必须填写该表单,当他按下提交按钮时,程序应该将所有信息写入不同的文本文件中(例如,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

你认为我应该做什么?

file delphi assign
1个回答
1
投票

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

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

致电

Assign
之前。

© www.soinside.com 2019 - 2024. All rights reserved.