このディレクトリの索引
http://pc12.2ch.net/test/read.cgi/tech/1263824755/299
#  [1] 授業単元:コンピュータリテラシー 
#  [2] 問題文(含コード&リンク): 
#  あるファイルの名簿を呼びだし、名前もしくは名字で検索しその結果を新しいファイルに保存する。あるファイルの名簿は特に決められていない。 
#  http://ime.nu/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10456.txt 
#  

'名簿を呼びだし、名前で検索しその結果を新しいファイルに保存する'(_名簿ファイル,_出力ファイル,_検索する名前) :-
        名簿を呼び出し(_名簿ファイル,L),
        名前で検索しその結果を新しいファイルに保存する(_出力ファイル,L,_名前),!.
名簿を呼び出し(_名簿ファイル,L) :-                
        get_split_lines(_名簿ファイル,[' ',','],L),!.

名前で検索しその結果を新しいファイルに保存する(_出力ファイル,L,_名前) :-
        新しいファイルに(_出力ファイル),
        名前で検索しその結果を保存する(L,_名前).

新しいファイルに(_出力ファイル) :-
        var(_出力ファイル),
        tmpnam(_出力ファイル),
        tell(_出力ファイル),!.
新しいファイルに(_出力ファイル) :-
        \+(var(_出力ファイル)),
        exists_file(_出力ファイル),
        tmpnam(Tmpnam),
        writef('ファイル %t は既に存在します。\nこのファイルへの保存を中止し、仮ファイル %t へ保存します\n\n',[Tmpnam]),
        tell(Tmpnam),!.
新しいファイルに(_出力ファイル) :-
        tell(_出力ファイル),!.

名前で検索しその結果を保存する([],_) :-
        told.
名前で検索しその結果を保存する([[_名字,_名前,_住所,_電話番号]|R],_名前) :-
        write_formatted('%t,%t,%t,%t\n',[_名字,_名前,_住所,_電話番号]),
        名前で検索しその結果を保存する(R,_名前),!.
名前で検索しその結果を保存する([_|R],_名前) :-
        名前で検索しその結果を保存する(R,_名前),!.