私はRuby初心者になります。
今、私は文字列(文)から文字列(単語)を検索させるプログラムを組みたいのですが、1つ分からない点が出てきたので質問させていただきました。
内容なのですがとりあえず以下のようなプログラムを本などで調べ組上げました。
***********************************************************
open("docu.txt"){|io|
puts io.read
io.pos = 0
File.readlines("word.txt").each{|line|
puts line
line.chomp!
p io.read.index(line)
}
}
***********************************************************
【docu.txtの内容】
aiueokakikukekosasisuseso
【word.txtの内容】
keko
***********************************************************
結果:
aiueokakikukekosasisuseso
keko
11
これならちゃんと動いてくれました。
ただ、これらのテキストの内容を以下のような日本語にするとうまくいきません。
***********************************************************
【docu.txtの内容】
あいうえおかきくけこさしすせそ
【word.txtの内容】
けこ
***********************************************************
結果:
あいうえおかきくけこさしすせそ
けこ
nil
やはり英数字でないと、うまくいかないようです。
こういった「ひらがな」や「漢字」でも検索してくれるようにするには、どういった作業が必要になるのでしょうか?
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
文字コードがおかしいのかと思いましたけど、nil になるのが不審。
OSの種類とRubyのバージョンはなんですか?
ruby -v でバージョンがわかります。
1.8.x の場合は、p $KCODE というスクリプトを実行した結果はどうなりますか?
1.9.x の場合は、p Encoding.default_external というスクリプトを実行した結果はどうなりますか?
docu.txt と word.txt のデータの文字コードはなんですか?
問題点とは関係ありませんが、こういうほうがいいですね。
open("docu.txt"){|io|
str = io.read
puts str
File.readlines("word.txt").each{|word|
puts word
word.chomp!
p str.index(word)
}
}
OSはLinuxでRubyのバージョンは1.8です。
色々試した結果、やはりdocu.txtとword.txtの文字コードが違ったみたいです。
ちゃんと合わせてやると動いてくれました。
ふむふむ
そんな書き方ができるんですね!
勉強になりました^^
ご丁寧な回答感謝いたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチ処理 特定の文字以降を...
-
[コンパイルエラー 修飾子が不...
-
MS-DOSバッチファイルコマンド...
-
バッチファイル フォルダ名をフ...
-
VBA テキストボックスを選択状...
-
アスキー変換 と 逆変換について
-
Access VBA エラー2448について
-
Excelマクロ 空白セルを無視し...
-
ダブルコーテーション付きでCSV...
-
Fortran:列数の分からないデー...
-
VBAでcsvファイルもシートもあ...
-
CSVで余計な空行が入る
-
CSVデータの文字列置換
-
【ExcelVBA】300万件越えCSVか...
-
バッチファイルでcsvファイルに...
-
fortranでNAのあるデータを読み...
-
PowerShellでファイルの連結方法
-
Sikulix2.0.5(Jython2.7.3)でcs...
-
バッチファイルで複数のディレ...
-
文字コードの変換について教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチ処理 特定の文字以降を...
-
VBA テキストボックスを選択状...
-
Access VBA エラー2448について
-
[コンパイルエラー 修飾子が不...
-
バッチファイル フォルダ名をフ...
-
SQLでテキストボックスの文字を...
-
分数の計算のプログラミングです。
-
MS-DOSバッチファイルコマンド...
-
アスキー変換 と 逆変換について
-
■PukiWikiの凍結解除方法を教え...
-
超初心者です。シングルクォー...
-
teratermで、ファイル名をinput...
-
型の値をDataGridViewセルに変換...
-
verilog HDLについての質問です...
-
コンボボックスとスピンボタン
-
バッチ for /f 空白、スペース...
-
コマンドプロンプトの条件文に...
-
パイソンでテキストファイルが...
-
C#の@を含む文字列について
-
文書から単語を検索したい・・・
おすすめ情報