このディレクトリの索引

http://pc12.2ch.net/test/read.cgi/tech/1232627790/958 
# 【 課題 】テキストファイルから文字列5行を読み込み、別のテキストへ右縦書きで書き出す 
# 【 形態 】1. Javaアプリケーション(main()で開始) 
# 【 期限 】7/14 am6:00 
# 【 Ver  】Eclipse Version: 3.4.2 
# 【 補足 】 
# あいう 
# かきく 
# さしす 
# 上記のようなテキストファイルを読み込み、 
# さかあ 
# しきい 
# すくう 
# のように別のテキストファイルに書き出す感じです。 

'テキストファイルから文字列5行を読み込み、別のテキストへ右縦書きで書き出す'(InFile,OutFile) :-
        テキストファイルから文字列5行を読み込み(Infile,_文字列5行),
        別のテキストへ右縦書きで(_文字列5行,_右書き用に置換された文字列ならび),
        書き出す(OutFile,_右書きように置換された文字列ならび),

テキストファイルから文字列5行を読み込み(Infile,_文字列5行) :-
        open(InFile,read,Instream),
        findall(_行,(
                    between(1,5,N),
                    get_line(Instream,_行)),
                _文字列5行),
        close(InFile).

別のテキストへ右縦書きで(_文字列5行,_右書き用に置換された文字列ならび) :-
        findmax(_行の長さ,(
                    member(_行,_文字列5行),
                    atom_length(_行,_行の長さ),
                _最長文字数),
        空白文字を付加して文字数一致させる(_最長文字数,_文字列5行,_空白文字を付加して矩形にした文字列5行),
        右書き用に置換する(_空白文字を付加して矩形にした文字列5行,_右書き用に置換された文字列ならび).

右書き用に置換する(_空白文字を付加して矩形にした文字列5行,_右書き用に置換された文字列ならび) :-
        行を反転しながら転置する(_空白文字を付加して矩形にした文字列5行,_右書き用に置換された文字列ならび).

行を反転しながら転置する(_空白文字を付加して矩形にした文字列5行,_右書き用に置換された文字列ならび) :-
        '一旦文字ならびに変換して、行を反転して転置する'(_空白文字を付加して矩形にした文字列5行,LL2),
        文字列に戻す(LL2,_右書き用に置換された文字列ならび).

'一旦文字ならびに変換して、行を反転して転置する'(_空白文字を付加して矩形にした文字列5行,LL2) :-
        findall(L,(
                    member(_行,_空白文字を付加して矩形にした文字列5行),
                    atom_chars(_行,Chars),
                    reverse(Chars,L)),
                LL1),
        転置(LL1,LL2).

文字列に戻す(LL2,_右書き用に置換された文字列ならび) :-
        findall(_文字列,(
                    member(Chars,LL2),
                    atom_chars(_文字列,Chars)),
                _右書き用に置換された文字列ならび).

空白文字を付加して文字数を一致させる(_最大文字数,_文字列5行,_空白を付加した文字列5行) :-
        findall(_空白を付加された文字列,(
                    member(_文字列,_文字列5行),
                    atom_length(_文字列,_文字列長さ),
                    空白文字を付加する(_最大文字数,_文字列の長さ,_文字列,_空白を付加された文字列)),
                _空白を付加された文字列5行).

空白文字を付加する(_最大文字数,_文字列の長さ,_文字列,_空白を付加された文字列) :-
        _空白文字数 is _最大文字数 - _文字列の長さ,
        findall(' ',between(1,_空白文字数,_),_空白文字ならび),
        atomic_list_concat([_文字列|_空白文字ならび],_空白を付加された文字列).

書き出す(OutFile,_右書き用に置換された文字列ならび) :-
        open(OutFile,write,Outstream),
        append(_,[_行|R],_右書き用に置換された文字列ならび),
        writef(Outstream,'%t\n',[_行]),
        R = [],
        close(Outstream).
        
%
%  この符にはfindall/3だけで表現するという主題がある。
%