0

私の先生は私に簡単なプロジェクトを作成するように割り当てました: ユーザーが記入しなければならないフォームを作成し、送信ボタンを押すと、プログラムはすべての情報を異なるテキストファイルに書き込む必要があります (たとえば、ファーストネーム用の 1 つのテキストファイル、 onother for their last name etc) (私はそれが非常識に聞こえることを知っていますが、プロジェクトはプロジェクトです)。とにかく、私はこれを試しました:

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、

私が見つけたのは、何らかの理由でデルファイがファイルを割り当てていないことだけです。しかし、私はまだ理由を理解していません.コードは私にとって絶対に正しく、論理的に見えます.おそらく私が試したこと:

F:Array[1..20]of Textfile が間違っています。私が試した唯一の理由は、f1、f2、...、f20 を書き始めたかったからです。

私は何をすべきだと思いますか?ありがとう

4

1 に答える 1

1

の 2 番目の引数はRewrite文字列であってはなりません。それはコンパイルされますか?2 番目の引数はまったくないはずです、IIRC。ディレクトリへの書き込みアクセス権を持っていますか? ディレクトリは存在しますか?RTLがあなたのためにそれを作成するとは思いません。これが本当にあなたの問題である場合は、単に

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

呼び出す前にAssign

于 2013-05-12T11:35:20.553 に答える