2016-04-08 8 views
0

私の.txtファイルを書き直す際に問題がありますが、何か間違えましたか?プログラムはスムーズに実行されます。これは私の図書館の一部です。私は私のメモ帳内の出力がパスカル:外部ファイルを更新できません

ユーザ名になります期待

//global variable 
uses utheatre; 
var loadUDT:TheatreUDT; 
//utheatre library 
type 
TheatreUDT = record 
    Member:text; 
end; 

procedure load_main(var loadUDT : TheatreUDT); 
begin 
     load_Member(loadUDT.Member); 
end; 

procedure load_Member(var Member:text); 
begin 
    assign (Member,'Data/Member.txt'); 
end; 

procedure regis(var loadUDT:TheatreUDT); 
var 
    s:string; 
begin 
    rewrite(loadUDT.Member); 
    write('> Input Username : '); 
    readln(s); 
    write(loadUDT.Member,s); 
    write(loadUDT.Member,' | '); 
    write('> Input Password : '); 
    readln(s); 
    write(loadUDT.Member,s); 
    writeln(loadUDT.Member,' | 100000'); 
    writeln('> Registration Successful'); 
end; 

procedure exit(var loadUDT:TheatreUDT; var bool_main:boolean); 
    begin 
     close(loadUDT.Member); 
     bool_main := False; 
    end; 

|パスワード| 100000

しかし、Member.txtは更新されていないようです。前にありがとう。

EDIT:これは私のメインプログラム

begin 
    bool_main := True; 
    while(bool_main) do begin 
     write('> '); 
     readln(input_main); 
     case input_main of 
      'load' : load_main(loadUDT); 
      'register' : regis(loadUDT); 
      'exit' : exit(); 
     end; 
    end; 
end. 

N.B.です私は私の "レジスプロシージャ"の中に "close(loadUDT.Member)"を追加すると、 "exit procedure"の中に "close(loadUDT.Member)"を挿入すると動作しないことがわかりました。なぜどんなアイデア?もう一度ありがとう。

+0

あなたの手続きの呼び出しを見せてください。さもなければ、I/Oが実際に行われないことがあります。ファイルが常に書き換えられるため、 '更新された'場合でも間違っている可能性があります。あなたは 'data'サブディレクトリを確認してもよろしいですか? – gammatester

+0

@gammatesterが編集しました。実際に私は "データ"サブディレクトリをチェックして、そこにMember.txtを作成しましたが、何もありませんでした(0バイト)。 –

+0

なぜパラメータのない 'exit()'の呼び出し?これは実際にコンパイルして動作しますか? BTWの「exit」は標準的な手順です。パラメータなしで 'system.exit'が呼び出され、終了せずにプロシージャを終了します。 – gammatester

答えて

1

私は答えを見つけました。 exit()は予約済みです。ごめんなさい。 N.B. @gammatesterのおかげで

関連する問題