設定のファイルパスでの相対パスNo.26746
szk さん 09/06/20 22:40
 
お世話になっています。

秀丸を
D:\software\hidemaru
にインストールし、マクロファイル用のフォルダを
D:\software\hidemaru_data\macro
に作っています。

動作環境設定で、マクロファイル用のフォルダを
..\hidemaru_data\macro
と相対パスで設定しています。

マクロの祝鳥で、

 $RootDir = macrodir + "\\fortex\\";
 $SubDir = $RootDir + "sub\\";
  中略
 execmacro $SubDir + "vercheck.mac";

となっておりますが、

ファイルのパス(ファイルを含んでいるはずのフォルダ自体)が存在しません。
ファイル名 = D:\software\hidemaru_data\hidemaru_data\macro\fortex\sub\verche
ck.mac

とエラーが出てしまいます。

絶対パスでマクロフォルダを設定しているときは起きません。

解決策ありましたらよろしくお願いします。

[ ]
RE:26746 設定のファイルパスでの相対パスNo.26750
秀丸担当 さん 09/06/22 11:34
 
手順通りにしてやってみたところ、問題を確認することができました。

マクロを書き換えていいということであれば、マクロファイル用のフォルダが相
対パスと思わしい場合はフルパスになるように変数に置き換えるといいかもしれ
ないです。
例えば以下のように$macrodirという変数を作って、以降のmacrodirの部分を
$macrodirに書き換えるといいかもしれません。

例:
if( midstr( macrodir, 1, 2 ) == ":\\" ) {
  $macrodir = macrodir;
} else {
  $macrodir = hidemarudir + "\\" + macrodir;
}

設定を変えるだけで回避するには、言われている通りフルパスで書くしかないと
思います。
ヘルプにも一応フルパスということが書かれていて、他のマクロもフルパスを想
定しているかもしれないので、なるべくフルパスで書かれたほうがいいと思いま
す。

秀丸エディタ側で事前にフルパスに変換して、macrodirを参照するときは常にフ
ルパスになっているように改善したほうがいいかもしれないです。
互換性が維持できるようであれば、将来バージョンではそのように検討してみま
す。

[ ]