SaveShortCutマクロVer.0.22の不具合No.00732
h-tom さん 06/06/25 20:56
 

h-tom です。

"AddReNum.mac"ですが、秀丸エディタの設定で、「検索」−「検索での表示」が
「範囲選択」になっていると、正常に動作しません。
 マクロ実行前:Subject1=xxxxx
 マクロ実行後:Subject1xxxxx
"="が、なくなってしまうので、データが認識されなくなります。

検索が範囲選択になっていると、
>       searchdown "=";
>       insert str(#IDTotal);
ここで、検索して範囲選択された"="が、insert文で上書きされています。
escapeするか、replacedown使った方がいいかも。

それと、一度全ての番号を削除して、再設定してますが、単純に空いている番号に
追加してしまえばいいような気もします。
書き込む側の"link.hms"から、確実に設定されているキーを読み出し、""だったら、
その番号に書き込むって方法。

[ ]
RE:00732 SaveShortCutマクロVer.0.22の不No.00733
tibirin さん 06/06/25 23:20
 

tibirinです。

h-tomさん自力では絶対に発見出来ないバグ報告をして頂きまして
ありがとうございます。
又、丁寧な修正方法まで記入して頂きまして物凄く助かりましたm(_ _)m

>"AddReNum.mac"ですが、秀丸エディタの設定で、「検索」−「検索での表示」が
>「範囲選択」になっていると、正常に動作しません。
>
>ここで、検索して範囲選択された"="が、insert文で上書きされています。
>escapeするか、replacedown使った方がいいかも。

同様の設定をされており、データとして使用出来ない形になってしまい
困っておられる方は

AddReNum.macの 45行目と 59行目の
searchdown "=";
insert str(#IDTotal);
の間に escape;を挿入し

searchdown "=";
escape;
insert str(#IDTotal);
という形に変更して頂きたいと思います。
お手数をおかけ致しますが宜しくお願い致します。


>それと、一度全ての番号を削除して、再設定してますが、単純に空いている番号に
>追加してしまえばいいような気もします。

ヘルプにも記入していない裏技なんですが AddReNum.macを単独のマクロにして
いる理由は

例えば、ある link.hmsに IDが 10個入っている状態で
他の link.hmsから ID3=3等という一連の固まりをコピーしてから
最適な位置にペーストし、AddReNum.macを実行すると
データとして利用出来る形になりますので
あえてこんな面倒臭い方法にしています。

又、[ClipBoard]部分に作成された link.hmsは単独で
Windowsの好きなフィルダなどに移動して使用する事が
出来るっていう仕様の為にも
こんな風にしているのですが、ややこしいかもしれませんね。

私自身このマクロを使い倒している訳ではないので
どんな形がいいのかというのも判断がつかないのですが…

[ ]
RE:00733 SaveShortCutマクロVer.0.22の不No.00734
h-tom さん 06/06/26 23:24
 

h-tom です。

>h-tomさん自力では絶対に発見出来ないバグ報告をして頂きまして
>ありがとうございます。
検索使ったマクロで、うまく動かないのは、ここの設定が原因の場合が多いです。

>ヘルプにも記入していない裏技なんですが AddReNum.macを単独のマクロにして
>いる理由は
>
>例えば、ある link.hmsに IDが 10個入っている状態で
>他の link.hmsから ID3=3等という一連の固まりをコピーしてから
>最適な位置にペーストし、AddReNum.macを実行すると
>データとして利用出来る形になりますので
>あえてこんな面倒臭い方法にしています。
なるほど。違うファイルに、コピー、移動した場合の再配置ですか。

それと、"AddReNum.mac"の最初にある大量の"replaceallfast"ですが、
Subject〜OnlySelectFolder間は、1行でいいような?
  replaceallfast "^([^=]+)[0-9]+=", "\\1=", regular;
または、
  replaceallfast "[0-9]+=", "=", regular;
かな?

今の方法が確実といえば確実なんですが、置換実行時に表示される
ダイアログが、出たり消えたりする回数が多く、気になります。

[ ]
RE:00734 SaveShortCutマクロVer.0.22の不No.00735
tibirin さん 06/06/27 21:10
 
こんばんは、tibirinです。

>それと、"AddReNum.mac"の最初にある大量の"replaceallfast"ですが、
>Subject〜OnlySelectFolder間は、1行でいいような?
>  replaceallfast "^([^=]+)[0-9]+=", "\\1=", regular;
>または、
>  replaceallfast "[0-9]+=", "=", regular;
>かな?
>
>今の方法が確実といえば確実なんですが、置換実行時に表示される
>ダイアログが、出たり消えたりする回数が多く、気になります。

バグが少なくなれば次の課題として、高速化・安定化・操作性の向上
なんていう辺りに取り組みたいなぁと考えておりましたので
h-tomさんの今回のアドバイスは物凄く有難かったです。
いつもありがとうございます。

この部分は後から付け足してとりあえず動いたからいいやと
放っておいた箇所でして、タグ付き正規表現に直した方がいいと
いうのもスッカリ忘れておりました…

アドバイスを参考に Subject〜OnlySelectFolder間を
Subject12=1+1=2です。
というデータにも対応出来る様に
replaceallfast "^([^0-9]+)[0-9]+=", "\\1=", regular;
replaceallfast "^ID=.*", "ID=", regular;
としてみました。
おかげさまですっかり高速化しました。


現在のデータの保存方法は簡単に利用出来る反面、削除や追加がし難いのですが
かと言って完全なカンマ区切りの CSVにしてしまうと読み出し及び書き込み時に
常に秀丸エディタを呼び出さないといけないので
かえって遅くなってしまうかも知れませんが、

[LinkInfo]
IDTotal=3
1=Subject(CL)From(CL)To(CL)……(CL)OnlySelectFolder
2=Subject(CL)From(CL)To(CL)……(CL)OnlySelectFolder
3=Subject(CL)From(CL)To(CL)……(CL)OnlySelectFolder

(CL)は文字コード(0x0C)です。

とすればデータ量が 8割程度となり最番号付けも高速に出来るのかなぁと
気が付きました。
マクロを修正するよりもデータコンバートの為のマクロを作成する方が
手間取りそうですが。


[ ]