こんにちは。
現在、rubyで指定した文字数までを取得したいのですが、うまく取れません。
機能としては、次のことを行おうとしています。
①ファイルから全体の文字数を取得(例えば2200)
②全体の文字数から指定した範囲で切り取る(今回は仮で500)
③②の切り取った文字で、指定した文字(。)等まで削除して整形する(例えば、500文字から一番最後の(。)までを削除)
④③の最後の開始位置から新しく500文字を取得
今、詰まっている場所は次のことです。
②全体の文字数から指定した範囲で切り取る(今回は仮で500)のところで、ファイルクラスから切り取った文字数を入れたが、バイト数になっており、文字数が全然合わない。
汚いソースですが、下記のように記述しております。
file = File.open 'example.txt'#読み込むファイル result = Hash.new i = 0 while i < 5 #とりあえずハッシュ形式でデータ取得 file.each_line do |line| result.store(i, line) i += 1 end end sum = 0 #文字数の合計数を取得 result.each_value do |value| sum += value.length end puts "文字の合計数は#{sum}" sum = 0 #指定した文字数に切り取る result.each_value do |value| sum += value.length if sum > 500 break end end p sum file = File.open 'example.txt' puts file.read(sum) #ここは表示がバイト数のため、指定した文字数にならない>_<
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/11/17 01:21