2010年3月11日木曜日

Ruby:Hashリストへのデータの追加

Hashリストにデータを書き込み、それをファイルにしようと思い、Rubyでやってみました。

C:\>irb

irb(main):001:0> a = Hash.new
=> {}
irb(main):002:0> a['abc']='' <=初期化、ここはシングルクォーテーションでもOK。
=> ""
irb(main):003:0> a['abc'] << "1 2 3\n"      <= ここでシングルクォーテーションを使うと\nが開業にならない(^^;
=> "1 2 3\n"
irb(main):004:0> a['abc'] << "1 2 3\n"
=> "1 2 3\n1 2 3\n"
irb(main):005:0> a['abc'] << "1 2 3\n"
=> "1 2 3\n1 2 3\n1 2 3\n"
irb(main):006:0> a['abc'] << "1 2 3\n"
=> "1 2 3\n1 2 3\n1 2 3\n1 2 3\n"
irb(main):007:0> f=File.open('cc','w')
=> #
irb(main):008:0> f.write(a['abc'])
=> 28
irb(main):009:0> f.close
=> nil

で、このようなファイルが出きました。

irb(main):010:0> a['def']=''
=> ""
irb(main):011:0> a['def'] << "4 5 6\n"
=> "4 5 6\n"
irb(main):012:0> a['def'] << "4 5 6\n"
=> "4 5 6\n4 5 6\n"
irb(main):013:0> a['def'] << "4 5 6\n"
=> "4 5 6\n4 5 6\n4 5 6\n"
irb(main):014:0> a['def'] << "4 5 6\n"
=> "4 5 6\n4 5 6\n4 5 6\n4 5 6\n"
irb(main):015:0> f=File.open('cc','w')=> #
irb(main):016:0> f.write(a['def'])
=> 28
irb(main):017:0> f.close
=> nil

で、ちゃんと書き換わってます。

a自体は

irb(main):021:0> puts a
{"abc"=>"1 2 3\n1 2 3\n1 2 3\n1 2 3\n", "def"=>"4 5 6\n4 5 6\n4 5 6\n4 5 6\n"}

このようになっています。

0 件のコメント: