TOPシステム開発> 第3回:Rubyスクリプトを動かそう! (2/3)

いまさら聞けないRuby入門

いまさら聞けないRuby入門

第3回:Rubyスクリプトを動かそう!

著者:伊藤忠テクノソリューションズ  大場 光一郎

公開日:2007/12/21(金)

データの加工

ではRubyを使った実用的な処理の題材としてカンマ区切りのデータを加工してみましょう。

ヒアドキュメント

Rubyには複数行にわたる文字列データを簡潔に記述できる「ヒアドキュメント」という文字列定数の書き方があります。ヒアドキュメントはまとまったデータをスクリプトの中に埋め込みたいときに使います。

リスト2は、改行を含んだ文字列をCSV_DATA定数に格納しています。「<<EOS」がヒアドキュメントの開始で、次に出てくる終端の「EOS」までが文字列定数となります。「EOS」には好きな文字列を識別子として使うことができます。「<<LABEL」や「<<EOF」でもかまいません。必ず開始と終端で同じ識別子を使います。慣例的にヒアドキュメントの識別子には英大文字を使うことが多いです。また、例のようなヒアドキュメントでは、終端の「EOS」をインデントせずに行頭から記述する必要があります。

まずはじめにリスト2のデータを1行ずつ表示してみましょう。これは「第2回:Rubyを動かそう!」で解説したブロックを使った繰り返し処理が使えます。リスト2に続いてリスト3を入力し、csv_print.rbというファイル名で保存して実行してみましょう。図2のような画面が表示されたでしょうか。

リスト2:ヒアドキュメントの例(番号,名前,mail,身長)
CSV_DATA = <<EOS
01,太郎,taro@foo.com,156
02,花子,hanako@foo.com,155
03,次郎,jiro@foo.com,164
04,三郎,saburo@foo.com,142
05,二郎,saburo@foo.com,180
EOS

リスト3:cvs_print.rb
CSV_DATA.each_line do |line|
  puts line
end

csv_print.rb実行結果
図2:csv_print.rb実行結果
(画像をクリックすると別ウィンドウに拡大図を表示します)

実習1

リスト3を変更して2行目以降を表示したり3行目だけを表示してみましょう。Rubyリファレンスマニュアルの制御構造やStringクラスの項を参照しながら変更してみてください。

次にデータの並べ替えをしてみましょう。 次のページ


前のページ  1  2  3  次のページ


伊藤忠テクノソリューションズ株式会社 大場 光一郎
著者プロフィール
伊藤忠テクノソリューションズ株式会社  大場 光一郎
社内のRuby推進に従事。個人的にBookScopeの開発に協力する傍ら、オープンソースへの活動としてMeadowプロジェクトに参加したり、JRubyの開発に協力したりしている。最近、Java Expert #02へJRubyの記事を書いた。

Meadow
http://www.meadowy.org/meadow/
BookScope
http://bookscope.net/
暮らしの業
http://ko.meadowy.net/~koichiro/diary/


INDEX
第3回:Rubyスクリプトを動かそう!
  Rubyスクリプトを作ろう
データの加工
  並べ替え