Indexへ
(3342)// 【3336】→(3337) ------------------------ 【タイトル】文字の配置換え
【記事番号】 3336 (*)
【 日時 】05/07/20 10:48
【 発言者 】ららら
文字を書くときにExcel to Jw_winで書いてからJWに貼り付けていますが、貼り付けた後に文字の位置を編集したいです。
縦(列)の変更は範囲選択→文字位置・集計で調整できるのですが、横(行)の位置調整ができないで困っています。横の調整をしたくても、数値を打つと全部重なってしまったり、縦ならびになってしまったりします。
どうしたらいいのでしょうか。
ちなみに使用しているのは、4.05バージョンaでPCはXPです。
Indexへ
(3336)← 【3337】//(3344) ------------------------ 【タイトル】Re(1):文字の配置換え
【記事番号】 3337 (3336 )
【 日時 】05/07/20 11:10
【 発言者 】コジマ
エクセルの感覚で、文字位置を調整する外変です。
mswin32 版 Rubyのインストールが必要。
◎テキストファイル(ファイル名 文字位置設定.txt)
1.0
1.0
4
◎バッチファイル(ファイル名 表枠文字位置整理.bat)
@REM 表枠内の文字位置を一括整理
@echo off
REM #jww
REM #cd
REM #zz
REM #h2
REM #e
copy jwc_temp.txt temp.txt > nul
ruby -Ks 表枠文字位置整理.rb temp.txt > jwc_temp.txt
◎スクリプトファイル(ファイル名 表枠文字位置整理.rb)
require 'vr/vruby'
require 'vr/vrcontrol'
module Frm_form1
def _form1_init
$_form1_fonts=[
@screen.factory.newfont('MS ゴシック',-16,0,4,0,0,0,49,128),
@screen.factory.newfont('MS ゴシック',-19,0,4,0,0,0,49,128)
]
self.caption = '文字位置設定'
self.move(166,124,366,334)
addControl(VRStatic,'static1',"文字基点横ズレ(図寸)mm",16,24,192,24,1342177280)
@static1.setFont($_form1_fonts[0])
addControl(VREdit,'edit1',"",256,24,88,24,1342177408)
@edit1.setFont($_form1_fonts[0])
addControl(VRButton,'button1',"設定完了",120,240,224,48,1342177280)
@button1.setFont($_form1_fonts[1])
addControl(VRStatic,'static2',"文字基点縦ズレ(図寸)mm",16,56,192,24,1342177280)
@static2.setFont($_form1_fonts[0])
addControl(VREdit,'edit2',"",256,56,88,24,1342177408)
@edit2.setFont($_form1_fonts[0])
addControl(VRStatic,'static3',"文字基点(以下リストより選択)",16,88,240,24,1342177280)
@static3.setFont($_form1_fonts[0])
addControl(VRListbox,'listBox1',"listBox1",16,120,88,168,1350565889)
addControl(VREdit,'edit3',"",256,88,88,24,1342177408)
@edit3.setFont($_form1_fonts[0])
@static1.setFont($_form1_fonts[0])
str_array=["左下","中下","右下","左中","中中","右中","左上","中上","右上"]
@listBox1.setListStrings(str_array)
$hash={"左下"=>"0","中下"=>"1","右下"=>"2","左中"=>"3","中中"=>"4","右中"=>"5","左上"=>"6","中上"=>"7","右上"=>"8"}
$hash2=$hash.invert
settei=[]
open("文字位置設定.txt","r"){|f|
while line=f.gets
settei< end }
@edit1.text=settei[0]
@edit2.text=settei[1]
@edit3.text=$hash2[settei[2]]
end
def construct
_form1_init
end
def listBox1_selchanged
@edit3.text=@listBox1.getTextOf(@listBox1.selectedString)
end
def button1_clicked
$x_hanare=@edit1.text.to_f
$y_hanare=@edit2.text.to_f
$kiten=$hash[@edit3.text]
a=[$x_hanare,$y_hanare,$kiten]
open("文字位置設定.txt","w"){|f|
a.each{|item|f.puts item}
}
close
end
end
VRLocalScreen.start Frm_form1
class Array
def under_over(x,y)
a=[];b=[]
self.each{|item|
a<- y}
self.each{|item|
b<- x && item[1]
y}
if a.size>0 && b.size>0
return [a.max,b.min]
else
return nil
end
end
end
tateiti=[];yokoiti=[];by=[]
while ARGF.gets
xy=split
if xy[0]=~/^hs/
xy[1..-1].each{|item|by< end
if xy[0]=~/^lg/
lg=xy[0][2,1]
zusun=by[lg.hex]
end
if xy[0]=~/^\d|^-/
xy.collect!{|item|item.to_f}
if xy[0]>xy[2]
xy[0],xy[2],xy[1],xy[3]=xy[2],xy[0],xy[3],xy[1]
elsif xy[0]==xy[2]
if xy[1]>xy[3]
xy[1],xy[3]=xy[3],xy[1]
end
yokoiti<<[xy[0],xy[1],xy[3]]
end
if xy[1]==xy[3]
tateiti<<[xy[1],xy[0],xy[2]]
end
end
end
yokoiti.sort!
tateiti.sort!
puts "hd"
hch=[]
open("temp.txt","r"){|f|
while line=f.gets
xy=line.split
if xy[0]=~/^hq/
elsif xy[0]=~/^hch/
print line
xy.each{|item|hch< elsif xy[0]=~/^cn\d+$/
print line
if xy[0]=="cn0"
moji_h=xy[2].to_f
else
moji_h=hch[xy[0][2,1].to_i]
end
elsif xy[0]=~/^ch/
x=xy[1].to_f+xy[3].to_f/2
y=xy[2].to_f+moji_h*zusun/2
if line=~/\"/
moji=$'
end
unless yokoiti.under_over(x,y) or
tateiti.under_over(y,x)
puts "cc0"
print line
else
if $kiten=="0"
cc="cc0"
moji_x=yokoiti.under_over(x,y)[0]+$x_hanare*zusun
moji_y=tateiti.under_over(y,x)[0]+$y_hanare*zusun
elsif $kiten=="1"
cc="cc1"
moji_x=(yokoiti.under_over(x,y)[0]+yokoiti.under_over(x,y)[1])/2
moji_y=tateiti.under_over(y,x)[0]+$y_hanare*zusun
elsif $kiten=="2"
cc="cc2"
moji_x=yokoiti.under_over(x,y)[1]-$x_hanare*zusun
moji_y=tateiti.under_over(y,x)[0]+$y_hanare*zusun
elsif $kiten=="3"
cc="cc3"
moji_x=yokoiti.under_over(x,y)[0]+$x_hanare*zusun
moji_y=(tateiti.under_over(y,x)[0]+tateiti.under_over(y,x)[1])/2
elsif $kiten=="4"
cc="cc4"
moji_x=(yokoiti.under_over(x,y)[0]+yokoiti.under_over(x,y)[1])/2
moji_y=(tateiti.under_over(y,x)[0]+tateiti.under_over(y,x)[1])/2
elsif $kiten=="5"
cc="cc5"
moji_x=yokoiti.under_over(x,y)[1]-$x_hanare*zusun
moji_y=(tateiti.under_over(y,x)[0]+tateiti.under_over(y,x)[1])/2
elsif $kiten=="6"
cc="cc6"
moji_x=yokoiti.under_over(x,y)[0]+$x_hanare*zusun
moji_y=tateiti.under_over(y,x)[1]-$y_hanare*zusun
elsif $kiten=="7"
cc="cc7"
moji_x=(yokoiti.under_over(x,y)[0]+yokoiti.under_over(x)[1])/2
moji_y=tateiti.under_over(y.x)[1]-$y_hanare*zusun
elsif $kiten=="8"
cc="cc8"
moji_x=yokoiti.under_over(x,y)[1]-$x_hanare*zusun
moji_y=tateiti.under_over(y,x)[1]-$y_hanare*zusun
end
puts cc
printf("ch %e %e %e %e \"%s\n",moji_x,moji_y,xy[3],xy[4],moji)
end
else
print line
end
end
}