- 設定ファイル操作の ruby で sendkeys を使った操作が不安定でうまく動作しない場合があるらしい。
- UWSCを使って考え直してみる。
- rubyと秀丸とUWSCをインストールして利用して下さい。
- 文字コードはSJISで保存して下さい。
@rem 設定ファイル操作
@echo off
REM #jww
REM #cd
goto %1
REM #hc【設定ファイル操作】 ボタンを選択して下さい。
REM #hm【設定ファイル操作】 |jwf書出し[L]|jwf読込み[R]|レイヤ名読込み|jwl書出し|jwl読込み|
REM #:1
REM #:2
REM #:3
REM #:4
REM #:5
REM #hf
REM #e
:1
copy jwc_temp.txt jwc_temp.bak
"C:\Program Files (x86)\Hidemaru\hidemaru.exe" /xseljwf.mac file.txt
start "C:/Program Files (x86)/uwsc/uwsc.exe" jwfw.uws
goto END
:2
copy jwc_temp.txt jwc_temp.bak
"C:\Program Files (x86)\Hidemaru\hidemaru.exe" /xseljwf.mac file.txt
start "C:/Program Files (x86)/uwsc/uwsc.exe" jwfr.uws
goto END
:3
copy jwc_temp.txt jwc_temp.bak
copy jwc_temp2.txt jwc_temp.txt
goto END
:4
copy jwc_temp.txt jwc_temp.bak
"C:\Program Files (x86)\Hidemaru\hidemaru.exe" /xseljwl.mac file.txt
start "C:/Program Files (x86)/uwsc/uwsc.exe" jwfw.uws
goto END
:5
copy jwc_temp.txt jwc_temp.bak
"C:\Program Files (x86)\Hidemaru\hidemaru.exe" /xseljwl.mac file.txt
start "C:/Program Files (x86)/uwsc/uwsc.exe" jwlr.uws
goto END
:COMENT
設定ファイルの読込み、書出しをします。
【jwf書出し】:jwfファイルを書出します
【jwf読込み】:jwfファイルを読込みます
【jwl書出し】:jwlファイルを書出します
【jwl読込み】:jwlファイルを読込みます。
【レイヤ名読込み】:jwfファイル読込み後にレイヤ名を読込みます
"
#! ruby -Ks
$stderr=open("error.txt","w")
$stdout=open("jwc_temp2.txt","w")
file=open("file.txt").read.chomp
a=[]
open(file).read.each_line{|e|
if /^LAYNAM_[0-9A-F]/=~e
a << e.chomp.gsub(%r|^[^=]*=|,"").gsub(","," ,")
.gsub(%r|,$|,", ").split(",").map{|e| e.gsub(%r| $|,"")}
end}
p a
a.each_with_index{|e,i| e.each_with_index{|f,j|
if j==0
puts "lg"+i.to_s(16)+" 11"
puts "lgn"+f
else
puts "ly"+(j-1).to_s(16)+" 11"
puts "lyn"+f
puts "ly0 11" if j==16
end}}
:END
//jwfw.uws
CTRLWIN(GETID("cmd.exe"),HIDE)
ACW(GETID("jw_win"))
KBD(VK_ALT,DOWN,100)
KBD(VK_S,CLICK,100)
KBD(VK_ALT,UP,100)
KBD(VK_F,CLICK,100)
KBD(VK_W,CLICK,100)
KBD(VK_CTRL,DOWN,100)
KBD(VK_V,CLICK,100)
KBD(VK_CTRL,UP,100)
KBD(VK_ALT,DOWN,100)
KBD(VK_S,CLICK,100)
KBD(VK_ALT,UP,100)
KBD(VK_Y,CLICK,100)
KBD(VK_SHIFT,DOWN,100)
KBD(VK_A,CLICK,100)
KBD(VK_SHIFT,UP,100)
EXEC("rubyw -x "+GET_UWSC_NAME,true)
TEXTBLOCK ruby
#! ruby -Ks
$stderr=open("error.txt","w")
$stdout=open("temp.txt","w")
file=open("file.txt").read.chomp
s=open(file).read.encode(Encoding::SJIS,invalid: :replace,undef: :replace)
f=open(file,"w")
f.print s
__END__
ENDTEXTBLOCK
//jwfr.uws
CTRLWIN(GETID("cmd.exe"),HIDE)
ACW(GETID("jw_win"))
KBD(VK_ALT,DOWN,100)
KBD(VK_S,CLICK,100)
KBD(VK_ALT,UP,100)
KBD(VK_F,CLICK,100)
KBD(VK_R,CLICK,100)
KBD(VK_CTRL,DOWN,100)
KBD(VK_V,CLICK,100)
KBD(VK_CTRL,UP,100)
KBD(VK_ALT,DOWN,100)
KBD(VK_O,CLICK,100)
KBD(VK_ALT,UP,100)
KBD(VK_SHIFT,DOWN,100)
KBD(VK_A,CLICK,100)
KBD(VK_SHIFT,UP,100)
EXEC("rubyw -x "+GET_UWSC_NAME,true)
TEXTBLOCK ruby
#! ruby -Ks
$stderr=open("error.txt","w")
$stdout=open("jwc_temp2.txt","w")
file=open("file.txt").read.chomp
a,b=[],[]
open("jwc_temp.bak").read.each_line{|e|
if /^hq/=~e
puts "h# レイヤ名を取り込みました".encode(Encoding::SJIS)
else
print e
end}
open(file).read.encode(Encoding::SJIS,invalid: :replace,undef: :replace).
each_line{|e|
if /^LAYNAM_[0-9A-F]/=~e
a << e.chomp.gsub(%r|^[^=]*=|,"").gsub(","," ,")
.gsub(%r|,$|,", ").split(",").map{|e| e.gsub(%r| $|,"")}
end}
a.each_with_index{|e,i| e.each_with_index{|f,j|
if j==0
b << "lg"+i.to_s(16)+" 11"
b << "lgn"+f
else
b << "ly"+(j-1).to_s(16)+" 11"
b << "lyn"+f
#puts "ly0 11" if j==16
end}}
#b.reverse.map{|e| puts e}
b.map{|e| puts e}
__END__
ENDTEXTBLOCK
//jwlr.uws
CTRLWIN(GETID("cmd.exe"),HIDE)
ACW(GETID("jw_win"))
KBD(VK_ALT,DOWN,100)
KBD(VK_S,CLICK,100)
KBD(VK_ALT,UP,100)
KBD(VK_F,CLICK,100)
KBD(VK_R,CLICK,100)
KBD(VK_CTRL,DOWN,100)
KBD(VK_V,CLICK,100)
KBD(VK_CTRL,UP,100)
KBD(VK_ALT,DOWN,100)
KBD(VK_O,CLICK,100)
KBD(VK_ALT,UP,100)
KBD(VK_SHIFT,DOWN,100)
KBD(VK_A,CLICK,100)
KBD(VK_SHIFT,UP,100)
コメント