- 設定ファイルの書出し、読込みを半自動化します。
- レイヤ名変更を扱いやすくしました。
- rubyと秀丸をインストールして利用して下さい。
- 秀丸のパスについては適宜変更して下さい。
@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
:2
copy jwc_temp.txt jwc_temp.bak
"C:\Program Files (x86)\Hidemaru\hidemaru.exe" /xseljwf.mac file.txt
start ruby -Ks -x %~f0 %1
goto END
:3
copy jwc_temp.txt jwc_temp.bak
ruby -Ks -x %~f0 %1
goto END
:4
:5
copy jwc_temp.txt jwc_temp.bak
"C:\Program Files (x86)\Hidemaru\hidemaru.exe" /xseljwl.mac file.txt
start ruby -Ks -x %~f0 %1
goto END
:COMENT
設定ファイルの読込み、書出しをします。
【 jwf書出し 】:jwfファイルを書出します
【 jwf読込み 】:jwfファイルを読込みます
【レイヤ名読込み】:jwfファイル読込み後にレイヤ名を読込みます
【 jwl書出し 】:jwlファイルを書出します
【 jwl読込み 】:jwlファイルを読込みます。
~
#! ruby -Ks
$stderr=open("error.txt","w")
$stdout=open("jwc_temp.txt","w")
opt=ARGV[0].to_i
unless FileTest.file?("file.txt")
puts "he file.txtが見つかりません"
exit
end
if opt==3
file=open("file.txt").read.chomp
a=[]
unless FileTest.file?(file)
puts "he #{file}が見つかりません"
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
puts "lg"+i.to_s(16)+" 11"
puts "lgn"+f
else
puts "ly"+(j-1).to_s(16)+" 11"
puts "lyn"+f
end}}
open("jwc_temp.bak").read.each_line{|e|
if /^hq/=~e
puts "h# レイヤ名を読み込みました"
else
print e
end
}
exit
end
require 'win32ole'
shell = WIN32OLE.new("WScript.Shell")
shell.AppActivate("jw_win");sleep(0.3)
if opt==1
shell.Sendkeys("%sfw");sleep(0.3)
shell.Sendkeys("^v%sy+a");sleep(3)
file=open("file.txt").read.chomp
s=open(file).read.encode(Encoding::SJIS,invalid: :replace,undef: :replace)
f=open(file,"w")
f.print s
elsif opt==2
shell.Sendkeys("%sfr");sleep(0.3)
shell.Sendkeys("^v%o+a");sleep(0.3)
elsif opt==4
shell.Sendkeys("%sfw");sleep(0.3)
shell.Sendkeys("^v%sy+a");sleep(0.3)
elsif opt==5
shell.Sendkeys("%sfr");sleep(0.3)
shell.Sendkeys("^v%o+a");sleep(0.3)
end
__END__
:END
- マクロの置き場所は「その他→動作環境→パス」タブの「マクロファイル用のフォルダ」で設定できます。
//seljwf.mac
openfile "*.jwf";
$fl=filename;
setclipboard $fl;
#hwnd=hidemaruhandle(0);
if(linecount==1)insert "\n";
save;
setactivehidemaru findhidemaru("file.txt");
closehidemaruforced #hwnd;
selectall;delete;insert $fl;save;quit;
//seljwl.mac
openfile "*.jwl";
$fl=filename;
setclipboard $fl;
#hwnd=hidemaruhandle(0);
replaceallfast "PRTCT_CH.*","PRTCT_CH = 1 ",regular;
if(linecount==1)insert "\n";
save;
setactivehidemaru findhidemaru("file.txt");
closehidemaruforced #hwnd;
selectall;delete;insert $fl;save;quit;
- ruby 2.6.5p114 にて動作確認してます。
- 秀丸エディタV9.19にて動作確認しています。
- 【レイヤ名読込み】のみを単品で使いたい場合はバッチファイルと同じフォルダに file.txt を用意して、読み込む jwf ファイルのパスを書出しておいてください。こんな感じで。
コメント