while ARGF.gets #temp.txtの一行ずつの読み込み開始
xy = split #一行の読込データを分割して、xyという配列にする。
if xy[0] =~ /^[0-9]/ or xy[0] =~ /^-/ #もしも、線データならば
xy.collect!{|item| if item.to_f} #配列内のデータを浮動小数点数に変 換する
整数に変換するには、xy.collect!{|item| if item.to_i}
VBの文法、メソッドの置き換えればよろしいかと思います。
以下は、図面内に座標一覧表を作図する外変です。
○バッチファイル
@REM 線端・点に座標値(mm単位)を記入+一覧表。
@echo off
REM #jww
REM #cd
REM #h1
REM #1一覧表記入点を指示してください。
REM #e
copy jwc_temp.txt temp.txt > nul
ruby -Ks 座標記入一覧.rb temp.txt > jwc_temp.txt
○スクリプトファイル(ファイル名 座標記入一覧.rb)
# 線端に座標値を記入+一覧表。
BEGIN{
$zahyo=Array.new
$x1=Array.new
$x2=Array.new
$y1=Array.new
$y2=Array.new
$by=Array.new
$gyo=6
}
def main
while ARGF.gets
xy = split
if xy[0] =~ /^hs/
b=1
while (b$by.push(xy[b].to_i)
b +=1
end
end
if xy[0] =~ /^lg/
$lg=(xy[0].delete("lg")).to_i
end
if xy[0] =~ /^hp1/
ax=xy[1].to_f
ay=xy[2].to_f
end
if xy[0] =~ /^[0-9]/ or xy[0] =~ /^-/
xy.collect!{|item| if item=~ /^0/
item=0
else
(((item.to_f)*1000).round)/1000.to_f
end}
xy.collect!{|item| if item.to_s=~ /.0$/
item=item.round
else
item=item
end}
zahyo1=xy[0].to_s+","+xy[1].to_s
zahyo2=xy[2].to_s+","+xy[3].to_s
$zahyo.push(zahyo1)
$zahyo.push(zahyo2)
$x1.push(xy[0])
$x2.push(xy[2])
$y1.push(xy[1])
$y2.push(xy[3])
end
end
$zahyo.uniq!
n=0
while (n<$zahyo.size)
$xy=$zahyo[n].split(",")
x=$xy[0].to_f
y=$xy[1].to_f
printf("ch %e %e %e %e \"%s\n", x, y, 1, 0,$zahyo[n])
n+=1
end
if $zahyo.include?("0,0")==false
printf("ch %e %e %e %e \"0,0\n", 0, 0, 1, 0)
printf("pt %e %e \n", 0, 0)
end
$zusun=$by[$lg]