コマンドプロントを立ち上げます.
いつもの作業場所(C:\EoS\ruby)に移動して,
cp mems2z.rb mems2z080624.rbを実行します.
ディレクトリ(dir)をとってmems2z080624.rbファイルが作られているか確認してください.
これは前回のゼミの際に作成した内容を別名(mems2z080624.rb)で保存しておいて,
mems2zに新たに手を加えるためです.
1.インタラクティブ
エディタを立ち上げてmems2z.rbを開きます.
#がついている行は消しちゃいます
.
region = ["523601","513674"]の頭に#をつけてコメントにします.
def initialize(region,dir,out_file)のregionを消します.
その下の@region = regionの右辺をget_region_iに書きかえます.
だいぶ下の方の行になるんですが、
pro = MEM2Z.new(region,dir,out_file)のregionも消します.
以下のようになると思います.
class MEM2Z
#Initialize
def initialize(dir,out_file)
@region = get_region_i
@dir = dir
@out_file = out_file
end
上のendから1行あけて以下6行の内容を書きます.
#Regionの取得(インタラクティブ)
def get_region_i
print "北西隅 = "; nw = STDIN.gets.chop
print "南東隅 = "; se = STDIN.gets.chop
[nw,se]
end
実際に動くか確かめるために@region = get_region_iの頭にp を付けて、
コマンドプロントでruby mems2z.rbと入力すると
北西隅 =
と表示されるので523601と入力します.
同じように南東隅も聞かれるので、513674と入力します.
すると以下のようになると思います.
※僕は以下のようになりました.
["523601","513674"]
[4,2]
"O:/DATA/Japan2/5236/523601.mem"
O:/DATA/Japan2/5236/523601.mem
"O:/DATA/Japan2/5236/523602.mem"
O:/DATA/Japan2/5236/523602.mem
"O:/DATA/Japan2/5236/523603.mem"
O:/DATA/Japan2/5236/523603.mem
"O:/DATA/Japan2/5236/523604.mem"
O:/DATA/Japan2/5236/523604.mem
"O:/DATA/Japan2/5136/523671.mem"
O:/DATA/Japan2/5136/523671.mem
"O:/DATA/Japan2/5136/523672.mem"
O:/DATA/Japan2/5136/523672.mem
"O:/DATA/Japan2/5136/523673.mem"
O:/DATA/Japan2/5136/523673.mem
"O:/DATA/Japan2/5136/523674.mem"
O:/DATA/Japan2/5136/523674.mem
2.コマンドライン
@region = get_region_iの頭に#をつけてコメントにします.
その下に@region = get_region_cを書きます.
インタラクティブの下に以下4行の内容を書きます.
#Regionの取得(コマンドライン)
def get_region_c
ARGV
end
実際に動くか確かめるために@region = get_region_cの頭にp を付けて、
コマンドプロントでruby mems2z.rb 523601 513674と入力すると、
インタラクティブのときと同じように以下のようになると思います.
["523601","513674"]
[4,2]
"O:/DATA/Japan2/5236/523601.mem"
O:/DATA/Japan2/5236/523601.mem
"O:/DATA/Japan2/5236/523602.mem"
O:/DATA/Japan2/5236/523602.mem
"O:/DATA/Japan2/5236/523603.mem"
O:/DATA/Japan2/5236/523603.mem
"O:/DATA/Japan2/5236/523604.mem"
O:/DATA/Japan2/5236/523604.mem
"O:/DATA/Japan2/5136/523671.mem"
O:/DATA/Japan2/5136/523671.mem
"O:/DATA/Japan2/5136/523672.mem"
O:/DATA/Japan2/5136/523672.mem
"O:/DATA/Japan2/5136/523673.mem"
O:/DATA/Japan2/5136/523673.mem
"O:/DATA/Japan2/5136/523674.mem"
O:/DATA/Japan2/5136/523674.mem
もしコマンドプロントでruby mems2z.rbと入力すると、
エラーメッセージが出ると思います.
なので自分たちでエラーメッセージを作っちゃいましょう.
以下のように書きかえます.
#Regionの取得(コマンドライン)
def get_region_c
unless ARGV.size == 2
puts "Usage: ruby mems2z.rb 北西隅 南東隅"
exit
else
return ARGV
end
end
そしてコマンドプロントでもう一度ruby mems2z.rbと入力すると、
以下のようになると思います.
Usage: ruby mems2z.rb 北西隅 南西隅
今回の作業はここまでです.
箇条書きで分かりにくい文章ですいません. 竹内
最終更新:2008年06月27日 17:02