09/07/14 17:08:27
>>470 書き直し
% Prolog URLリンク(nojiriko.asia)
テキストファイルから文字列5行を読み込み、別のテキストへ縦書きで書き出す(InFile,OutFile) :-
open(InFile,read,Input),
open(OutFile,write,Output),
findall(Chars,(for(1,N,5),get_line(InFile,_行),atom_chars(_行,Chars)),LL),
max(Chars,Max),
空白文字を付加して行の文字数一致させる(Max,LL,LL2),
行列の転置(LL2,LL3),
出力ファイルに書き出す(Output,LL3).
出力ファイルに書き出す(Output,[]) :- close(Output),!.
出力ファイルに書き出す(Output,[L|R]) :-
concat_atom(L,S),
write_formatted(Output,'%t\n',[S]),
出力ファイルに書き出す(Output,R).
空白文字を付加して行の文字数を一致させる(Max,LL1,LL2) :-
findall(L,(member(L1,LL1),length(L,Max),append(L1,L2,L),all(L2,' ')),LL2).
all([],_).
all([V|R],V) :- all(R,V).