- 175 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 09:00:30 ]
- >>170
% Prolog (その一) 整列と併合を除く外殻だけ。 オンメモリ整列限界数(1000). ファイルに保存された会員情報を指定された項目をキーとしてソートする(_対象ファイル,_鍵項目番号,_ソート方法) :- オンメモリ整列限界数(_オンメモリ整列限界数), open(_対象ファイル,read,Input), ふたつの仮ファイルの取得と交互からくり生成, 入力出力ファイルを交互しながらの繰り返し(_,_仮出力ファイル,InputT,OutputT), 対象ファイルから読み込む(Input,_オンメモリ整列限界数,Lines,_診断), 鍵・昇降順・指定整列(Lines,_鍵項目番号,_ソート方法,_整列されたLines), 鍵項目番号とソート方法をしてファイル併合(_整列されたLines,_鍵項目番号,_ソート方法,InputT,OutputT), _診断 = end_of_file,close(Input), 仮出力ファイルの内容を整理しながら標準出力に表示する(_仮出力ファイル,_鍵項目番号). 入力出力ファイルを交互しながらの繰り返し(_仮ファイルA,_仮ファイルB,InputT,OutputT) :- 仮ファイルからくり(_仮ファイルA,_仮ファイルB), open(_仮ファイルA,read,InputT), open(_仮ファイルB,write,OutputT). 仮ファイルからくり(X) :- 仮ファイルからくり(X). ふたつの仮ファイルの取得と交互からくり生成 :- tmpnam(_仮ファイル1),open(_仮ファイル1,write,Output1),close(Output1), tmpnam(_仮ファイル2),opne(_仮ファイル2,write,Output2),close(Output2), asserta(仮ファイルからくり(_仮ファイル2,_仮ファイル1)), asserta(仮ファイルからくり(_仮ファイル1,_仮ファイル2)).
|

|