あるフォルダにある最新の日付のファイルNo.08936
いちもんじ さん 19/03/11 09:49
 
題名のとおりなのですが。

あるフォルダにある最新の日付のファイルを秀丸マクロを使って開く
ことってできるのでしょうか?

[ ]
RE:08936 あるフォルダにある最新の日付のNo.08937
h-tom さん 19/03/11 20:49
 

h-tom です。

>あるフォルダにある最新の日付のファイルを秀丸マクロを使って開く
>ことってできるのでしょうか?
秀丸エディタのマクロ単体では無理ですよ。

マクロ単体ではファイルの日付を取得する方法がありません。
外部DLLや、COMオブジェクトを使う必要があります。

[ ]
RE:08937 あるフォルダにある最新の日付のNo.08938
秀丸担当 さん 19/03/12 12:14
 

フォルダのファイル一覧や日付の取得は、h-tomさんの言われる通り、本体そのもの
には無くて、外部のDLLや、マクロサーバや、COMオブジェクトなどを使う必要があり
ます。
DLLなどを導入せずにやるとしたら、たぶんCOMオブジェクトの"Scripting.FileSyste
mObject"であればできると思いますが、けっこう面倒だと思います。
簡単に済ますのであれば、コマンドプロンプトのdirの結果から取得するといいかも
しれないです。
ただdirは日付の形式がコントロールパネルの設定で変わるかもしれないです。

例:
newfile;
setcompatiblemode 0x20200;
run "cmd.exe /c dir /OD "+directory+" >con";
searchup "^[^ ].+ +[0-9,]+ (.+)(?\\1)",regular;
$file=gettext(seltopx,seltopy,selendx,selendy);
message $file;

[ ]
RE:08938 あるフォルダにある最新の日付のNo.08942
いちもんじ さん 19/03/29 13:26
 
ご教示いただきありがとうございます。

ファイル名には規則性があります。
例えば、
abc_20190328070523.txt
abc_20190329070611.txt
といったように
西暦年、月、日、時、分、秒となっています。
1日1ファイルなので、月日の部分までを指定できれば開けるのですが。

openfile では、*とか?とか、ワイルドカード文字は使えるのでしょうか?

[ ]
RE:08942 あるフォルダにある最新の日付のNo.08943
h-tom さん 19/03/31 09:57
 

h-tom です。

>openfile では、*とか?とか、ワイルドカード文字は使えるのでしょうか?
やってみれば判りますが使えますよ。
ワイルドカードが含まれると、マッチしたファイルが表示された、
「ファイルを開く」ダイアログが開き、ファイルを選ぶ必要があるけど。

>1日1ファイルなので、月日の部分までを指定できれば開けるのですが。
バッチファイルで for 使って、対象ファイルを秀丸エディタで開かせた方が
いいのでは?
バッチファイル内で日付を取得するのは面倒ですが。

[ ]
RE:08942 あるフォルダにある最新の日付のNo.08944
山紫水明 さん 19/03/31 20:34
 
 いちもんじさん,

>西暦年、月、日、時、分、秒となっています。
>1日1ファイルなので、月日の部分までを指定できれば開けるのですが。

 もしかしたら,全く外しているかもしれませんが,次のようなマクロではいか
がでしょうか。

// -------------------------------------------------
newfile;
$folder = directory;//適宜書き換え
setcompatiblemode 0x20000;
$date = input("日付は?", year + month + day);
run "cmd.exe /c dir /B " + $folder + " > con";
gofiletop;
searchdown2 "^abc_" + $date + ".*", regular;
if( result == yes  ) {
    $file = gettext2( 0, lineno, linelen2, lineno );
    openfile $file;
    closehidemaru 1;
} else {
    message "目的のファイルはありません。";
    quit;
}
endmacro;
// -------------------------------------------------
                    山紫水明
                    SANSHISUIMEI

[ ]