From: Jun Mukai Date: 2005-10-14T18:29:56+09:00 Subject: [ruby-list:41288] Re: 条件に合う見出しの内容だけを抽出 向井という者です。 # どうせ真面目な解答はほかの人がしてくれると思うので data.txtはこの形式でなければならないのでしょうか? もし多少の改変が許 されるのであれば、 yaml にしてしまうと処理が楽になるのではないかと思い ます。 --- data.yml --- Title-1: Title-A: - content1 Title-B: - content2 - content3 Title-2: Title-A: - content4 - content5 Title-B: - content6 ---------------- とすれば、 -- yaml版 -- require 'yaml' data = YAML.load('data.yml') data['Title-1']['Title-B'] # => ['content2', 'content3'] ---- のようになります。ここでの data はただのハッシュなので、好きなように操 作することができます。 もちろん yaml を覚えないと使えなくなってしまいますが、yamlについてはちょ うどるびまの記事がありますね。 http://jp.rubyist.net/magazine/?0009-YAML http://jp.rubyist.net/magazine/?0010-YAML また、 YAML Cookbook も参考になります。英語のページですが、コード比較 を見るだけでだいたいわかるようになると思います。 http://yaml4r.sourceforge.net/cookbook/ data.txt そのままで処理したい場合は、すぐ思いつくのはインデント数から 構造を推定していく方法でしょうか。 いずれにせよ、井沢さんの今のコードでは、順序をちょっと変えたり、新しい 項目を追加するとえらいことになるので、後々で大変になると思います。 # これまた用途にもよりけりでしょうが……