▼R.Nさん:
>
>こんばんは、お世話になります。
>
>"BM・GL・DL・FL±"などの表記は、そのまま残るようにして貰いたいです。
>(rbオプション設定へ、追記するとかで)
>
>出力レベル表記は、元データレベルのみを別レイヤに移行した状態で、実行する手法でも結構です。
>よろしくお願いいたします。
こんにちは。
いつも検証ありがとうございます。
このようなレベルを変更する外部変形はそれぞれの考え方により
相違すると思います。
この外部変形は単純に入力した数値で増減するするものでGLとか
FLとかの相対的な変更ではないです。
趣旨に合うかどうか解りませんがスクリプトの下記箇所を修正して
試してみてください。
※56行目〜
####### 設定 ###############################################
#
$marume="d" #丸め方式(r≡四捨五入; d≡切捨て; u≡切上げ)
$keta = 1 #小数点以下の表示桁数(0〜4)
$zero = "off" #表示桁数以下の0表示(on≡有; off≡無)
$comma= "on" #三桁カンマ区切り(on≡設定有; off≡設定無)
#
$save = "BM" #数値認識及び保存する先頭文字列(無指定:半角空白)
#
############################################################
def main
$stdin = File.open("./temp.txt","r")
$stdout = File.open("./jwc_temp.txt","w")
$dh = 0.0
include Math
while ARGV.size >= 1
case argument = ARGV.pop
when /^\/h/
$dh = argument[2..-1].to_f
end
end
if $marume != "r" && $marume != "d" && $marume != "u"
puts "he 丸め方式設定エラー。"; exit
end
if $keta < 0 or $keta > 4
puts "he 小数点以下の表示桁数設定エラー。"; exit
end
if $comma != "on" && $comma != "off"
puts "he 三桁カンマ区切り設定エラー。"; exit
end
if $dh == 0
puts "he 増減する高さ数値が入力されていません。"; exit
end
while gets
ele = $_.split
if $_ =~ /^hq/
puts "hd" #データ書換
elsif $_ =~ /^ch/ #横文字
data = $_.split
no = $_.index(/\"/); moji = $_[no+1..-1].strip
if moji =~ /^\+[0-9]|^\-[0-9]|^±|^#{$save}/ #半角符号付数字&$save
if moji =~ /^#{$save}/
save = $save
elsif moji !~ /^#{$save}/
save = ""
end
moji.delete!("+±\s,#{$save}")
h0 = moji.to_f+$dh
h = marume(h0)
if h0 == 0
puts [data[0,5],"\"#{save}±0"].join("\s")
elsif h0 > 0
puts [data[0,5],"\"#{save}+#{h}"].join("\s")
elsif h0 < 0
puts [data[0,5],"\"#{save}#{h}"].join("\s")
end
else
print
end
else
print #その他のデータは全て書出し
end
end
end
rem ---以上です。