このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1294061094/341
#  【質問テンプレ】  
#  [1] 授業単元:画像処理  
#  [2] 問題文(含コード&リンク):指定したテキストファイルの中にあるデータを読み込み、-1と右端の1を取り除き(横に4つの列、縦に約50の行の数字が並んでいる)、指定した場所にファイルを保存するプログラムを作成する。  
#  

'指定したテキストファイルの中にあるデータを読み込み、-1と右端の1を取り除き(横に4つの列、縦に約50の行の数字が並んでいる)、指定した場所にファイルを保存する'(_テキストファイル,_指定した場所) :-
        get_split_lines(_テキストファイル,[',',' '],LL),
        '-1と右端の1を取り除き'(LL1,LL2),
        指定した場所にファイルを保存する(_指定した場所,_テキストファイル,LL2).

'-1と右端の1を取り除き'([],[]) :- !.
'-1と右端の1を取り除き'([L1|R1],[L2|R2]) :-
        '行の中の-1と右端の1を取り除き'(L1,L2),
        \+(L2=[]),
        '-1と右端の1を取り除き'(R1,R2),!.
'-1と右端の1を取り除き'([L1|R1],R2) :-
        '-1と右端の1を取り除き'(R1,R2),!.

'行の中の-1と右端の1を取り除き'([],[]) :- !.
'行の中の-1と右端の1を取り除き'([1],[]) :- !.
'行の中の-1と右端の1を取り除き'([-1|R1],R2) :-
        '行の中の-1と右端の1を取り除き'(R1,R2),!.
'行の中の-1と右端の1を取り除き'([N|R1],[N|R2]) :-
        '行の中の-1と右端の1を取り除き'(R1,R2),!.

指定した場所にファイルを保存する(_指定した場所,_テキストファイル,LL) :-
        保存するパス名(_指定した場所,_テキストファイル,_保存するパス名),
        open(_保存するパス名,write,Outstream),
        append(_,[L|R],LL),
        concat_atom(L,' ',S),
        write_formatted(Outstream,'%t\n',[S]),
        R = [],
        close(Outstream),!.

保存するパス名(_指定した場所,_テキストファイル,_保存するパス名) :-
        \+(sub_atom(_指定した場所,_,1,0,'/')),
        \+(sub_atom(_テキストファイル,0,1,_,'/')),
        concat_atom([_指定した場所,'/',_テキストファイル],_保存するパス名),!.
保存するパス名(_指定した場所,_テキストファイル,_保存するパス名) :-
        sub_atom(_指定した場所,_,1,0,'/'),
        \+(sub_atom(_テキストファイル,0,1,_,'/')),
        concat_atom([_指定した場所,_テキストファイル],_保存するパス名),!.
保存するパス名(_指定した場所,_テキストファイル,_保存するパス名) :-
        sub_atom(_指定した場所,_,1,0,'/'),
        sub_atom(_テキストファイル,0,1,R,'/'),
        split(_テキストファイル,['/'],L),
        last(L,_テキストファイルの二),
        concat_atom([_指定した場所,_テキストファイルの二],_保存するパス名),!.
保存するパス名(_指定した場所,_テキストファイル,_保存するパス名) :-
        \+(sub_atom(_指定した場所,_,1,0,'/')),
        sub_atom(_テキストファイル,0,1,R,'/'),
        split(_テキストファイル,['/'],L),
        last(L,_テキストファイルの二),
        concat_atom([_指定した場所,'/',_テキストファイルの二],_保存するパス名),!.