irb は便利だが、複数行のプログラムを開発するようには作られていない。edb を使うと、edb から出ずに複数行にわたる Ruby プログラムを開発することができる。
edb ではプログラムを開発する前にデータを取り込むことができる。まず、サンプルの seiseki.txt を読み込んでみる。 Ruby$ ruby edb.rb easydb> table = Edb.new('seiseki.txt') easydb> table.dump name sugaku kokugo eigo A 90.0 65.0 55.0 B 46.0 50.0 50.0 C 63.0 63.0 58.0 D 50.0 40.0 48.0 E 55.0 32.0 40.0 このデータの成績の部分を処理したいので、成績の部分だけを取り出して二次元配列を作る。 easydb> array = table.to_array('sugaku kokugo eigo') easydb> p array[0] [90.0, 65.0, 55.0] 各列の総和を計算するプログラム sum を作りたいので、変数 sum にプログラムを入れるメソッド edit を呼び出す。 easydb> sum = edit すると、vi を呼び出すので、vi で次のプログラムを作成する。 array.each do |x| p x end vi を終了すると、edb のコンソールに戻ってくるので、sum にプログラムが入っているか確認する。 easydb> puts sum array.each do |x| p x end sum を実行してみる。 easydb> eval sum [90.0, 65.0, 55.0] [46.0, 50.0, 50.0] [63.0, 63.0, 58.0] [50.0, 40.0, 48.0] [55.0, 32.0, 40.0] これで、上のループが動くのが確認できたので、sum を再度編集して合計を出すように変更する. easydb> sum = edit(sum) easydb> puts sum total = [0,0,0] array.each do |x| for i in 0..2 total[i] += x[i] end end p total 実行してみる。 easydb> eval sum [304.0, 250.0, 251.0] sum をテキストファイルに保存する。 easydb> File.open('sum.rb','w'){|f| f.write(sum)} ファイルが作成できているかどうか確認する。 easydb> system 'cat sum.rb' total = [0,0,0] array.each do |x| for i in 0..2 total[i] += x[i] end end p total 外部プログラムを変数に読み込むには IO.read メソッドを使う easydb> sum2 = IO.read('sum.rb') easydb> puts sum2 total = [0,0,0] array.each do |x| for i in 0..2 total[i] += x[i] end end p total edb を終了するには exit と入力する。 easydb> exit この様に、データをまず取り込んでおいて、それを処理するプログラムを動作を確認しながら開発していけるので、プログラム開発の負担感がずいぶん減る。
by tnomura9
| 2008-09-20 07:05
| Ruby
|
Comments(0)
|
カテゴリ
新型コロナウイルス 主インデックス Haskell 記事リスト 圏論記事リスト 考えるということのリスト 考えるということ ラッセルのパラドックス Haskell Prelude Ocaml ボーカロイド 圏論 jQuery デモ HTML Python ツールボックス XAMPP Ruby ubuntu WordPress 脳の話 話のネタ リンク 幸福論 キリスト教 心の話 メモ 電子カルテ Dojo JavaScript C# NetWalker ed と sed HTML Raspberry Pi C 言語 命題論理 以前の記事
最新のトラックバック
最新のコメント
ファン
記事ランキング
ブログジャンル
画像一覧
|
ファン申請 |
||