このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1381909900/142
#  [1] 授業単元:C言語 
#  [2] 問題文(含コード&リンク): 
#  テキストファイルを作りそのなかに整数5個数字を入れるそのテキストファイルの中身を出力せよ 
#  input関数とshow関数を作ること 
#  コマンド引数にテキストファイルの名前を入れること 
#  

'テキストファイルを作りそのなかに整数5個数字を入れるそのテキストファイルの中身を出力せよ。コマンド引数にテキストファイルの名前を入れること' :-
        コマンド引数からテキストファイルの名前を得る(_テキストファイル),
        テキストファイルを作りそのなかに整数5個数字を入れるそのテキストファイルの中身を出力せよ(_テキストファイル).

コマンド引数からテキストファイルの名前を得る(_テキストファイル) :-
        current_prolog_flag(argv,ParameterList),
        append(_,['--'|[_テキストファイル]],ParameterList).

テキストファイルを作りそのなかに整数5個数字を入れるそのテキストファイルの中身を出力せよ(_テキストファイル) :-
        テキストファイルを作りそのなかに整数5個数字を入れる(_テキストファイル,Outstream),
        そのテキストファイルの中身を出力せよ(_テキストファイル).

テキストファイルを作りそのなかに整数5個数字を入れる(_テキストファイル) :-
        open(_テキストファイル,write,Outstream).
        そのなかに整数5個数字を入れる(Outstream),
        close(Outstream).

そのなかに整数5個数字を入れる(Outstream) :-
        between(1,5,_何番目),
        整数を得る(_整数),
        writef(Outstream,'%t\n',[_整数]),
        _何番目 = 5.

そのテキストファイルの中身を出力せよ(_テキストファイル) :-
        open(_テキストファイル,read,Instream),
        copy_stream_data(Instream,user_output),
        close(Instream).

%  
%  ここではズルをして組込述語 copy_stream_data/2 を使って見た。
%  
%  本来ならget_lines/2とput_lines/2の組合せでコピーを表現するところ。
%  
%  そのテキストファイルの中身を出力せよ(_テキストファイル) :-
%          get_lines(_テキストファイル,_行ならび),
%          put_lines(user_output,_行ならび).
%  
%  get_lines(_ファイル名,_行ならび) :-
%          open(_ファイル名,read,Instream),
%          findall(_行,(
%                      repeat,
%                      (    at_end_of_stream(Instream),!,fail;
%                           get_line(Instream,_行))),
%                  _行ならび),
%          close(Instream).
% 
%  put_lines(_ファイル名,_行ならび) :-
%          open(_ファイル名,write,Outstream),
%          forall(nth1(_,_行ならび,_行),writef(Outstream,'%t\n',[_行])),
%          close(Outstream).
%