このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1307166756/962
#  [1] 授業単元:C  
#  [2] 問題文(含コード&リンク):  
#  読み込むファイルはinput.txtに固定されていたが、それを拡張する。 
#  プログラム実行時に、ファイル名を入力させ、ファイルが読み込み出来ない場合には、ファイル名を繰り返し再入力させるように改良しなさい。 
#  

'プログラム実行時に、ファイル名を入力させ、ファイルが読み込み出来ない場合には、ファイル名を繰り返し再入力させる'(Lines) :-
        ファイル名を入力させ(File),
        全行を読み込む(File,Lines),!.
'プログラム実行時に、ファイル名を入力させ、ファイルが読み込み出来ない場合には、ファイル名を繰り返し再入力させる'(Lines) :-
        'プログラム実行時に、ファイル名を入力させ、ファイルが読み込み出来ない場合には、ファイル名を繰り返し再入力させる'(Lines).

全行を読み込む(File,Lines) :-
        get_lines(File,Lines),!.
全行を読み込む(File,Lines) :-
        writef('%tの入力に失敗しました\nファイル名の入力に戻ってください\n',[File]),
        fail.

ファイル名を入力させ(File) :-
        write('ファイル名を入力してください : '),
        get_line(Line),
        ファイル名を入力診断(Line,File),!.
ファイル名を入力させ(File) :-
        ファイル名を入力させ(File).

ファイル名を入力診断(Line,File) :-
        Line = File,
        exists(File,read),!.
ファイル名を入力診断(Line,File) :-
        write('入力された%tというファイルはありません。再入力をお願いします。\n',[Line]),
        fail.