ファイル名の判定No.08503
伯林 さん 17/05/02 04:54
 
ファイル名について二つほどお教えください。
「Testテキスト.txt」での実行でなければ動作しないマクロを作りたいと思っていま
す。判定を以下のようにしましたが全て「 else 」になります。
最後の「message $an1 ;」の部分では「Testテキスト.txt」と表示されるのですが。

$an1 = basename2;
if ($an1 == "\\Testテキスト.txt") {message "OK" ;
} else {message "NG";
message $an1 ;
}

それと上記とは関係ないのですが、秀丸の上部の「マクロ」→「マクロ実行」と進む
とマクロ一覧が表示されますが、ここに表示されるmacファイルの半分ほどがエキス
プローラやファイラには表示されません。これはなぜでしょう?急ぎませんが是非お
知恵をお貸しください。

[ ]
RE:08503 ファイル名の判定No.08504
天翔記jp さん 17/05/02 15:26
 
ゴールデンウィークで人が居ない…

「\\」が余分に付いてます。

$an1 = basename2;
if ($an1 == "Testテキスト.txt")
{
    message "OK";
}
else
{
    message "NG";
    message $an1 ;
}


>それと上記とは関係ないのですが、秀丸の上....

見てるフォルダが間違って無ければ、
エキスプローラ上でF5キーかなにか押せば出てくるのではないでしょうか。
(エキスプローラがファイルシステム更新を拾い損ねるのは
 よくあることなので)


[ ]
RE:08504 ファイル名の判定No.08505
秀丸担当 さん 17/05/02 16:05
 

ファイルの存在は大文字小文字の区別が無いので、basenameのほうを使うか、念
のためtolowerで統一するといいかもしれません。
例1:
  $an1 = basename;
  if ($an1 == "testテキスト.txt" )
例2:
  if (tolower($an1) == tolower("Testテキスト.txt") )

basename2を使われているので、敢えて大/小文字を区別しているのだとしたらす
みません。


エクスプローラとファイルが違って見えるのは、もしマクロファイル用のフォル
ダを空欄またはProgram Files配下にしているとしたら、バーチャルストアの可
能性が高いと思います。
バーチャルストアは、古い32bit版アプリの互換性のためにあるWindowsの機能で、
管理者でないとProgram Files配下に読み書きできないものを、互換性のために
仮想的に読み書きできるようになっているものです。

もしバーチャルストアだとしたら、[その他]→[動作環境]→[環境]で、マクロフ
ァイル用のフォルダをドキュメントフォルダ配下のフォルダなど、任意のファイ
ルが読み書きできる場所を指定されることをお勧めします。

[その他]→[動作環境]→[32bit版]の「VirtualStoreを無効にする」をONににし
て再起動すると、この仕組みは動作しないようになるので、こちらのほうが混乱
しないです。

秀丸エディタだけで見えているファイルは以下の場所にあります。(64bit版
Windowsで32bit版秀丸エディタの場合)

C:\Users\(ユーザー名)\AppData\Local\VirtualStore\Program Files (x86)\
Hidemaru

ちなみに秀丸ファイラーClassicを入れると、相互にバーチャルストアのある場
所に行き来できるので、移行する作業をするときはわかりやすいです。

[ ]
RE:08505 ファイル名の判定No.08506
伯林 さん 17/05/02 18:07
 
天翔記jp さん 
秀丸担当 さん 
早速のレスありがとうございました。
>「\\」が余分に付いてます。
あれれ?最初は何もつけずNGだったのでWebで調べ調べて、いろいろ試行錯誤し
た末、マクロのエラーが出ないように「\\」としました。basename2も試行錯誤の末
です。
「\\」を消してOKになりましたが、何か狐につままれたようです。

>秀丸エディタだけで見えているファイルは以下の場所にあります。(64bit版
>Windowsで32bit版秀丸エディタの場合)

>C:\Users\(ユーザー名)\AppData\Local\VirtualStore\Program Files (x86)\Hidemaru
ありました!この場所のファイルは「プログラムとファイルの検索」では出ないんで
すね。
マクロのフォルダは
C:\Program Files (x86)\Hidemaru\macro
としていますが「最近使ったファイル」ではあたかもここにあるように表示されます。
バーチャルストアの話は私には理解のレベルを超えていますが、ファイルのありかが
わかってホッとしています。
GWにもかかわらず迅速にお答えいただき感謝いたします。ありがとうございました。

[ ]