このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1280653311/552
#  [1] 授業単元: 研究 
#  [2] 問題文(含コード&リンク):口頭の支持のみ  
#  
# 処理の内容ですが、CSVファイルの容量が多いため処理量を把握できていません。
# そのためサンプルのような形でお願いします。
# 処理としては、
# CSVファイルの列ごとに、ある固定値をかけるというものです。(よって列によってでかけるものが変わる)
# また、何も行わない列もあります。(1部分の列のみに数値をかける)そしてその結果を出力するというものです。
# 
# もし、この説明で漠然としているようでしたらご指摘お願い致します。

CSVファイルの列ごとに、ある固定値をかける(_列ごとの乗数ならび,_入力CSVファイル,_出力CSVファイル) :-
        get_split_lines(_入力csvファイル,[',',' '],LL),
        列ごとに、ある固定値をかける(_列ごとの乗数ならび,LL1,LL2),
        CSVファイルとして出力する(_出力CSVファイル,LL2,',').

列ごとに、ある固定値をかける([],[],[]) :- !.
列ごとに、ある固定値をかける([V|R1],[B|R2],[B|R3]) :-
        var(V),
        列ごとに、ある固定値をかける(R1,R2,R3),!.
列ごとに、ある固定値をかける([1|R1],[B|R2],[B|R3]) :-
        列ごとに、ある固定値をかける(R1,R2,R3),!.
列ごとに、ある固定値をかける([A|R1],[B|R2],[C|R3]) :-
        C is A * B,
        列ごとに、ある固定値をかける(R1,R2,R3).

CSVファイルとして出力する(_出力CSVファイル,LL,_区切り文字) :-
        findall(S,(
                    member(L,LL),
                    concat_atom(L,_区切り文字,S)),
                L2),
        put_lines(_出力CSVファイル,L2).