このディレクトリの索引

# 出典 :: C/C++の宿題片付けます 143代目 #525 # [1] 授業単元:情報検索処理 # [2] 問題文(含コード&リンク):以下の仕様を満たすプログラムを作成してください。 # ・文章の書かれたテキストファイルを読み込み、文字列を入力して検索する。 # ・検索した文字列がある箇所全てに対して、その文字列と前後10文字を、検索結果として別のテキストファイルに書き込む。 # '文章の書かれたテキストファイルを読み込み、文字列を入力して検索する。検索した文字列がある箇所全てに対して、その文字列と前後10文字を、検索結果として別のテキストファイルに書き込む。'(_テキストファイル,_別のテキストファイル) :- '文章の書かれたテキストファイルを読み込み、文字列を入力して検索する。検索した文字列がある箇所全てに対して、その文字列と前後10文字を、検索結果として'(_テキストファイル,_検索結果ならび), '別のテキストファイルに書き込む。'(_別のテキストファイル,_検索結果ならび). '文章の書かれたテキストファイルを読み込み、文字列を入力して検索する。検索した文字列がある箇所全てに対して、その文字列と前後10文字を、検索結果として'(_テキストファイル,_検索結果ならび) :- '文章の書かれたテキストファイルを読み込み'(_テキストファイル,_文字ならび), '文字列を入力して'(_検索文字ならび), '検索する。検索した文字列がある箇所全てに対して、その文字列と前後10文字を、検索結果として'(_文字ならび,_検索文字ならび,_検索結果ならび). '文章の書かれたテキストファイルを読み込み'(_テキストファイル,_文字ならび) :- read_file_to_codes(_テキストファイル,_文字コードならび,[]), string_chars(_文字コードならび,_文字ならび). '文字列を入力して'(_検索文字ならび) :- write('検索文字列を入力してください : '), 検索文字ならび(_検索文字ならび). 検索文字ならび(_検索文字ならび) :- read_line_to_codes(current_input,_文字コードならび), string_chars(_行,_文字コードならび). '検索する。検索した文字列がある箇所全てに対して、その文字列と前後10文字を、検索結果として'(_文字ならび,_検索文字ならび,_検索結果ならび) :- findall([_位置,_検索文字列,_前10文字,_後10文字],( '検索する。検索した文字列がある箇所全てに対して、その文字列と前後10文字を、'(_文字ならび,_検索文字ならび,_検索した前10文字_後10文字ならび)),_検索結果ならび). '検索する。検索した文字列がある箇所全てに対して、その文字列と前後10文字を、'(_文字ならび,_検索文字ならび,_検索した前10文字_後10文字ならび) :- 検索する(_文字ならび,_検索文字ならび,L0,L1), 'その文字列と前後10文字を、'(L0,L1,_位置,_前10文字,_後10文字). 検索する(_文字ならび,_検索文字ならび,L0,L1) :- append(L0,_検索文字ならび,L1,_文字ならび). 'その文字列と前後10文字を、'(L0,L1,_位置,_前10文字,_後10文字) :- 検索位置は(L0,_位置), 前10文字(L0,_前10文字), 後10文字(L1,_後10文字). 検索位置は(L0,_位置) :- length(L0,Len), _位置 is Len + 1. 前10文字(L0,_前10文字) :- 前方に10文字以上ある場合は10文字を切り取る(L0,_前10文字),!. 前10文字(L0,_前10文字) :- atom_chars(_前10文字,L0). 前方に10文字以上ある場合は10文字を切り取る(L0,_前10文字) :- length(_前10文字ならび,10), append(_,_前10文字ならび,L0), atom_chars(_前10文字,_前10文字ならび),!. 後10文字(L1,_後10文字) :- 後方に10文字以上ある場合は10文字を切り取る(L1,_後10文字),!. 後10文字(L1,_後10文字) :- atom_chars(_後10文字,L1). 後方に10文字以上ある場合は10文字を切り取る(L1,_後10文字) :- length(_後10文字ならび,10), append(_後10文字ならび,L1). atom_chars(_後10文字,_後10文字ならび),!. '別のテキストファイルに書き込む'(_別のテキストファイル,_検索結果ならび) :- open(_別のテキストファイル,append,_出力), 書き込む(_出力,_検索結果ならび), close(Outstream). 書き込む(_出力,_検索結果ならび) :- forall(member([_位置,_検索文字列,_前10文字,_後10文字],_検索結果ならび), writef(_出力,'%w:%w,%w,%w\n',[_位置,_検索文字列,_前10文字,_後10文字])).