###前提・実現したいこと
辞書のデータファイル内容から、それぞれエントリー(見出し語)を別々のファイルに出力したいと思っています。エントリー(見出し語)を抽出してファイル名の一部とし、更に連番をつけてファイルを出力したいと思っています。ネットで見つけたスクリプトを改変しながら作業しています。
エラーメッセージの中にある ["hcp_en-cc3_htmltagged_1_A, a_1.txt"]というのが最初の希望のファイル名なのですが、ファイルとして出力されません。
よろしくお願い致します。
###発生している問題・エラーメッセージ
C:....>test.rb hcp_en-cc3_htmltagged_1.txt
C:/.../test.rb:15:in `initialize': Invalid argument @ rb_sysopen - ["hcp_en-cc3_htmltagged_1_A, a_1.txt"] (Errno::EINVAL)
###ソースコード
Ruby 2.2.3 p173
source_file = ARGV
source_file_name = File.basename(source_file.to_s, '.*')
source_file_ext = File.extname(source_file.to_s)
lines = File.open(ARGV[0]).read.scan(/<dt id.*?</dd>/m)
div = lines.count
file_count = div + 1
file_no = 1
lines.each_cons(1) {|e|
k = e[0].scan(/(?<=<dt id=c\d{5}><b>).?(?=</b>.?</dt>)/)
file_no_suffix = "#{sprintf('%0' + file_count.to_s.length.to_s + 'd', file_no)}"
out_file_name = "#{source_file_name}#{k[0]}#{file_no_suffix}#{source_file_ext}"
File.open(out_file_name,"w") {|f|
f.write e
}
file_no += 1
}
参照するファイルのデータ構造は以下の様なパターンです。辞書なのですが、idで通し番号があり、その右に見出し語があり、これをファイル名に抽出したいと思っています。
...
...
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。