|
速度は、最初試しにしていたときは数千行で数秒くらいだったのですが、まとめてre
placeallquickとかにしたらそこそこ使えるようになったかもしれません。
でるもんたいいじまさんのご指摘の通り、日付の書式の問題があるので、完全ではな
いです。書式がうまくいく場合に限って使えるようなものとして割り切って使っても
らう必要があると思います。(たぶん外部DLLかtkinfo.dllか、何らかの別手段が必要)
setcompatiblemode 0x20200;
if(filetype!="grep"){
message "grep結果で実行してください";
endmacro;
}
disabledraw;
#fso=createobject("Scripting.FileSystemObject");
escape;
replaceallquick @"^(.+?\()(\d+\):)",@"\1-\2",regular;
gofiletop;
while(1){
searchdown2 @"^(.+?)\(-\d+\):(?\1)",regular;
if(result==false){
break;
}
$file=gettext(seltopx,seltopy,selendx,selendy,1);
if(leftstr($file,2)!=@"\\"&&midstr($file,1,1)!=":"){
$file=directory+@"\"+$file;
}
#fo=member(#fso,"GetFile",$file);
$date=member(#fo,"DateLastModified");
if(val($date)<50)$date="20"+$date;
releaseobject #fo;
beginsel;
searchdown2 @"^(.+?)\(-\d+\):.*\n(?!\1)",regular;
moveto foundendx,foundendy;
endsel;
#linenoNext=lineno;
replaceallquick "^","["+$date+"]\t",regular,inselect;
escape;
moveto2 0,#linenoNext;
}
selectall;
filter "" , "Sort" , "110110110001001\"0101";//降順,数値の大小
replaceallquick @"^\[.+?\]\t","",regular;
replaceallquick @"^(.+?\()-(\d+\):)",@"\1\2",regular;
escape;
gofiletop;
clearupdated;
releaseobject #fso;
endmacro;
|
|