このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1307166756/793
#  [1] 授業単元:文字列  
#  [2] 問題文(含コード&リンク):  
#  ../test/read.cgi/tech/1307166756/757のプログラムを、ファイルinput.txtから読込、処理結果を画面だけではなく、 
#  ファイルoutput.txtに書き出すプログラムにしなさい。  
#  

'ファイルinput.txtから読込、処理結果を画面だけではなく、ファイルoutput.txtに書き出す' :-
        'ファイルinput.txtから読込'(Codes),
        処理結果を(Codes,_処理結果のCodes),
        '画面だけではなく、ファイルoutput.txtに書き出す'(_処理結果のCodes).

'ファイルinput.txtから読込'(Codes) :-
        get_codes('input.txt',Codes).

処理結果を([],[]).
処理結果を([Code1|R1],[Code2|R2]) :-
        処理結果(Code1,Code2),
        処理結果を(R1,R2).

処理結果(Code1,Code2) :-
        Code1 >= 97,
        Code1 =< 122,
        Code2 is Code1 - 32,!.
処理結果(Code1,Code2) :-
        Code >= 65,
        Code =< 90,
        Code2 is Code1 + 32,!.
処理結果(Code,Code).

'画面だけではなく、ファイルOutput.txtに書き出す'(Codes) :-
        open('output.txt',write,Outstream),
        '画面だけではなく、Outstreamに書き出す'(Outstream,Codes),
        close(Outstream).

'画面だけではなく、Outstreamに書き出す'(Outstream,Codes) :-
        append(_,[Code|R],Codes),
        画面に書きだす(Code),
        'Outstreamに書きだす'(Outstream,code),
        R = [].

画面に書き出す(Code) :-
        put_code(Code).

'Outstreamに書きだす'(Outstream,code) :-
        put_code(Outstream,Code).