既存ファイルを開いて空にするマクロNo.07623
でがらし さん 15/06/20 07:24
 
 既存ファイルを開いてから、その中身を空にするマクロを書きました。下記ですが、
次の2つの問題があります。

1.既存ファイルは開くが、中身が空にならない。
2.このマクロを起動したファイルの中身が空になる。

 中身を空にするファイルを間違えているようです。openfileの後はopenした既存フ
ァイルに編集画面が移るのではないのでしょうか? どういうふうに修正すべきか、
ご教示ください。

---------------------------------------
disabledraw;
setcompatiblemode 0x00000050;
openfile "d:\\A\\TAG.001";
selectall;
delete;
endmacro;
---------------------------------------

[ ]
RE:07623 既存ファイルを開いて空にするマNo.07624
h-tom さん 15/06/20 11:09
 

h-tom です。

>1.既存ファイルは開くが、中身が空にならない。
>2.このマクロを起動したファイルの中身が空になる。
>
> 中身を空にするファイルを間違えているようです。openfileの後はopenした既存フ
>ァイルに編集画面が移るのではないのでしょうか? どういうふうに修正すべきか、
>ご教示ください。
試してみましたが、こちらでは正常に動作しますね。
(指定したファイルが開き、内容が削除される)

動作しない根本原因は、担当さんに任せるとして、とりあえず目的のファイルが
開いたか、確認を追加してみてはどうですか?
(resultを見るとか、ファイル名のチェックなど)
そうすれば、"2."は回避可能ですよ。

[ ]
RE:07624 既存ファイルを開いて空にするマNo.07625
でがらし さん 15/06/20 13:51
 
 レス、ありがとうございます。resultを追加して、目的のファイルが開いているこ
とを確認しました。

 ところが不思議なことに、今度は前に記載した症状が出ません。今まで、何度か、
この症状に悩まされており、今朝はそれが再現することを確認してこの会議室で質問
しました。症状が再現しないので、今のところ、この先の追及ができません。いずれ、
症状がぶり返したときに報告することにします。

 なお、今回は、マクロを起動するファイルを保存済み、保存なしのいずれか、目的
のファイルを開いている、開いていないのいずれか、すべての組み合わせ(4つの組
み合わせ)でテストしましたが、いずれも症状が出ませんでした。

 記載し忘れましたが、Windows8.1、秀丸8.52です。

 まずはお礼まで申し上げます。

[ ]
RE:07625 既存ファイルを開いて空にするマNo.07626
秀丸担当 さん 15/06/22 10:29
 

バグ情報ありがとうございます。
マクロの動作としては、言われている通りopenfileで開かれたファイルにマクロ
の実行が移り、続行されるはずになっています。
もし実行が移らないとしたら、何らかのバグか、想定されていないことが起きて
いるということになります。
こちらでマクロ試してみた限りでは、マクロの実行は移り、開いたファイル上で
削除が実行されました。

マクロの実行が移らないことが起きた場合、「マクロ内から秀丸エディタを起動
したはずですが、10秒待っても応答がありません」というメッセージが出るこ
とになっています。
もしまた起きるようなことがある場合、そういうメッセージが出ていたかどうか
や、時間がかかっていたかなどが分かると、手がかりになります。

参考までに、そういうことが起きる例としては、openfileではない方法で開くと
マクロの実行が移らないです。
例えば.txtが関連付けされているとして、
openbyshell "c:\\xxx\\xxx.txt";
として開くと実行が移らず、実行元で削除されることになります。

[ ]
RE:07626 既存ファイルを開いて空にするマNo.07627
でがらし さん 15/06/22 19:05
 
 レス、ありがとうございます。この不都合がときどき起こりますが、「マクロ内か
ら秀丸エディタを起動したはずですが、10秒待っても応答がありません」というメ
ッセージは出たことがありません。時間もかからず、マクロは瞬時に対応しています。

 今のところ、openfile以外をマクロで使っていません。編集画面の移動で何かトラ
ブルの種がありそうです。再現すれば、報告します。

[ ]
RE:07626 類似のトラブルNo.07630
でがらし さん 15/06/29 07:02
 
 類似のトラブルらしい症状を発見したので報告します。
 下記のマクロをd:\deng.txt以外のファイル(元ファイル)の編集画面から起動す
ると、次のようになります。

---------------------------------------
1.元ファイルが保存済みであれば、d:\deng.txtに移動し、なんのメッセージも出
ません。

2.元ファイルが保存済みでない場合には、「元ファイルを読み直すか」というメッ
セージが出ます。
---------------------------------------

 reopenがd:\\deng.txtでではなく、元ファイルで働くようです。

---------------------------------------
#deng = findhidemaru("d:\\deng.txt");
closehidemaru #deng;
openfile "d:\\deng.txt";
reopen;
endmacro;
---------------------------------------

[ ]
RE:07630 類似のトラブルNo.07631
秀丸担当 さん 15/06/29 10:53
 

マクロで再現するということで、この情報は大変助かります。
こちらでマクロを実行してみたところでは、元のファイルではなく、開いたファ
イルで問い合わせがありました。
排他制御の設定や、タブモードの設定を変えてみてもうまく再現できませんでし
た。
最初に言われていた件と原因は同じだとしたら、これが直れば解決できそうです。

お手数ですが、もし差支えなければ設定内容をファイルに保存したものを送って
もらえるとこちらでも再現できると思います。
設定内容は[その他]→[設定内容の保存/復元...]でファイルに保存できます。
もし送っていただける場合、"PEH00775@nifty.com"まで秀丸担当宛てと書いて送
ってもらえると助かります。

[ ]
RE:07631 持ち出しキット利用:ファイル化No.07633
でがらし さん 15/06/29 11:18
 
 書きそびれていましたが、当方でも開いたファイルで問い合わせが出ます。

 設定内容をファイル化しようと思いましたが、持ち出しキットから利用しているの
でできないと出てきました。持ち出しキットのヘルプはどこにあるのでしょうか? 
探しましたが、よくわかりませんでした。

 ついでながら、持ち出しキット利用とそうでない利用とは、最初のどこかで選択で
きますか?

[ ]
RE:07633 持ち出しキット利用:ファイル化No.07634
秀丸担当 さん 15/06/29 11:37
 

すみません。マクロの実行が切り替わらない問題が再現できるものと勘違いして
いました。
closehidemaruは、対象が未保存であれば失敗します。
そのため、openfileでマクロの実行が切り替わり、reopenで問い合わせが出るの
は、正しい動作ということになります。

closehidemaruforcedを使うと、未保存であっても強制的に閉じます。

持ち出しキットの場合は、秀丸エディタがあるフォルダの中に全てがあります。
ヘルプはHmRegIni.chmになります。
設定ファイルはHmRegIni.iniが、既にファイル化された設定ファイルになります。
ですがマクロの実行が切り替わらない問題と思っていたので、もし送っていただ
いても最初の問題が再現できるということにはならなさそうです。すみません。

[ ]
RE:07634 closehidemaruの動作了解しましNo.07635
でがらし さん 15/06/29 11:55
 
 この件、了解です。再び、試してみたところ、ご指摘の通りの動作をしました。た
だ、今朝ほどは、元ファイルを読み込みするかというメッセージが出たはずです。今
回、再現できないので、追及を続けます。

 持ち出しキットのヘルプの場所のご教示、ありがとうございました。
 

[ ]