0

名前と値のペア (ハッシュとも呼ばれます) を Ruby で複数行のテキストにできるファイルに保存するにはどうすればよいですか? もちろん、私は最も単純な方法でコーディングしたいと考えています。以前に Windows でこのようなテキスト ファイルを見たことがあります。

[name]
Dr. Hash Mark

[biografy]
Bla bla bla
bla bla bla
bla bla bla

[works]
The big red one (1923)
The little black zero (1926)

この種のファイルを処理するための Ruby 用のライブラリまたは gem はありますか? たぶん、XML と XMLSimple gem を使用できます。

<man>
 <name>Dr. Hash Mark</name>
 <biografy>
  Bla bla bla
  bla bla bla
  bla bla bla
 </biografy>
 <works>
  The big red one (1923)
  The little black zero (1926)
 </works>
</man>

どちらも私にとっては良いことですが、この種のテキスト ファイルの束にデータを入力するための便利なアプリケーションも必要です。後で Ruby で読み取れるテキスト ファイルを生成するためにどのアプリケーションを使用すればよいかわかりません。 . リレーショナル データベース アプリケーションのことを考えていますが、確かではありませんが、データ構造 (名前、略歴、作品) を定義し、テキスト フィールドにデータを入力し、指定された場所にデータを保存できます。テキストファイルにフォーマットします。これを達成する方法を誰か助けてもらえますか?

4

1 に答える 1

2

YAML は良い選択です。stdlib に YAML 用のライブラリがあり、人間が読み取り/編集可能であり、かなり広く使用されています (Rails の設定ファイルなど)。複数行の文字列をサポートしています。

require 'yaml'

filename = 'hash.yaml'
original_hash = {'a' => 'b', 'c' => "d\ne"}
File.write filename, YAML.dump(original_hash)

puts "FILE LOOKS LIKE: #{File.read filename}"
puts "-" * 10

resulting_hash = YAML.load File.read(filename)
puts "READ BACK IN: #{resulting_hash.inspect}"

puts "ARE THEY THE SAME? #{original_hash == resulting_hash}"
于 2012-08-19T05:43:57.873 に答える