フォルダのソートNo.10650
TUBU-RED さん 03/01/12 02:36
 
鶴亀メールをすこぶる便利に使わせていただいています。

フォルダを名前の昇順にソートする方法を、マクロ等で実現する
方法をご教授願えないでしょうか?

最初は一生懸命ドラッグで何とかしていましたが、フォルダが
増えるとなぜかこの作業が大変重くなりました。
そこで必要に応じて各フォルダのsubdir.binファイルを秀丸で開き、
ソート系のマクロを使って並べなおし保存していたのですが、
末端のフォルダ数が数千に及んだ現在、これも鶴亀本体上で行う
ことができればありがたく思っています。

ついでといっては何ですが、フォルダ数や格納メール数が増えると
フォルダの情報を変更することや起動に大変時間がかかってしまう
のは仕方のないことでしょうか?

それでも検索のスピードが非常に速く、その他のメリットも大きく、
なんとなく我慢し続けてきましたが、今回自作マクロの改訂にあたり
質問させていただいた次第です。

[ ]
RE:10650 フォルダのソートNo.10654
秀まるお2 さん 03/01/12 13:13
 
 フォルダの並べ替えはマクロでは出来ません。そもそも鶴亀メールにはフォル
ダをABC順に並べ替える機能すらありません。

 しいて対応するとしたら、フォルダ上でのマウス右ボタンメニューに「配下の
フォルダをABC順に並べ替える」というコマンドを用意して、それをマクロから
も呼べるようにするって程度かと思います。

>末端のフォルダ数が数千に及んだ現在、これも鶴亀本体上で行う
>ことができればありがたく思っています。

 数千ものフォルダに分けて管理するようなニーズがあるのなら真剣に対応を検
討しないといけないと思いますが…。とりあえずABC順というか、フォルダ名順
で並べ替えできればいいですよね。

[ ]
RE:10650 フォルダのソートNo.10655
ひろ さん 03/01/12 16:18
 
 TUBU-RED さん今日は、ひろです。
> フォルダを名前の昇順にソートする方法を、マクロ等で実現する
> 方法をご教授願えないでしょうか?
 本体に搭載するかどうかは秀まるおさんにお任せするとして、マクロについ
ての返信を http://www.maruo.co.jp/turukame/2/ に書き込んでおきます。

[ ]
RE:10650 フォルダのソートNo.10664
山紫水明 さん 03/01/13 23:19
 
 TUBU-REDさん,こんばんは。

》フォルダを名前の昇順にソートする方法を、マクロ等で実現する
》方法をご教授願えないでしょうか?

 次のようなマクロで試してみてください。ただし,万一のために,ホームディレ
クトリごとバックアップを取ってから,やってみてください。
 危険かもしれませんので,自己責任でお願いします。

//---------- TKSortFolder.mac -------------------------------//

//フォルダを整列し直す

loaddll "tkinfo.dll";
if( !result ) goto Hidemaru;
if( !dllfunc("IsTuruKame") ) goto Hidemaru;
if( dllfunc("IsTrayIcon") ) {
    message "常駐を終わらせてください。";
    endmacro;
}
#n = dllfunc( "Exit" );
run "\"" + hidemarudir + "\\hidemaru.exe\" /xTKSortFolder.mac";
endmacro;

//  秀丸での動作
Hidemaru:
openreg "CURRENTUSER","Software\\Hidemaruo\\TuruKame\\Config";
$home = getregstr("HomeDir");
closereg;
#handle0 = hidemaruhandle(0);
grep ".\\n", "subdir.bin", $home, regular, subdir, filelist;
replaceallfast "\\(1\\)\\n", "\\n", regular;
#handle_g = hidemaruhandle(0);
gofiletop;
while( code != eof ){
    golinetop2;
    beginsel;
    golineend2;
    $sb = gettext( seltopx, seltopy, selendx, selendy );
    openfile "\"" + $sb + "\"";
    #handle1 = hidemaruhandle(0);
    selectall;
    run "sort < con > con";
    #i = #i + 1;
 //確認が必要なければ,以下3行コメント化
    question "変更を保存しますか?";
    if( result == yes ) save;
    else #i = #i - 1;
    setactivehidemaru #handle_g;
    closehidemaruforced #handle1;
    movetolineno 1, lineno + 1;
//以下2行必要であれば,活かす
//    question "continue ?";
//    if( result == no ) break;
}
message "終わりました。\n" str(#i) + " 個の subdir.bin を処理しました。";
quit;
endmacro;
//----------------------------------------------------------------//

     では, (^^)/~
                                        山紫水明

[ ]
RE:10650 フォルダのソートNo.10739
TUBU-RED さん 03/01/17 11:15
 
皆様どうも素早いお返事ありがとうございます。

風邪と多忙と頂いたマクロの検証に時間がかかり、せっかくの超高速
返答を無駄にしてスイマセンでした。

秀まるお2様
バージョンを1.80から思い切り上げました。起動がすごく早くなっていて
ビックリしました。起動時に、フォルダ等の設定を読み込む方法が変わった
のだろうと推察いたします。常駐を解除するのにためらうことはなくなり
ました。

ひろ様
ご紹介頂いたページにてプログラムをダウンロードしましたが、指示された
とおりに使えばいいものを、色々分からないことを調べている内に時間が過
ぎて行きました。あと、
>ライブラリに公開されている「複数ファイルにマクロ実行 Ver.1.00」
を秀丸・鶴亀両方のライブラリから探しましたが見付かりませんでした。
いずれにせよ、おかげ様でまた色々覚えました。
どうもありがとうございます。

山紫水明様
ご丁寧なプログラミングありがとうございます。ズバリ使わせて戴きました。
全てのフォルダを並べ替えるのではなく、必要な場所だけを並べ替えるよう
いじらせてもらいました。
(1)runコマンドで秀丸を新しく働かせて自分自身を実行した場合、
変数に格納した値が消えてしまうこと(クリップボードで解決しました)
(2)grepコマンドで、存在しないフォルダを探そうとしたときに、大量の
秀丸が開いて困ったことになること
(3)//確認が必要なければ,以下3行コメント化
    question "変更を保存しますか?";
    if( result == yes ) save;
    else #i = #i - 1;
のところで、必要が無いので丸ごとコメント化してしまったところ、
せっかく並べ替えたsubdir.binが保存されない(saveコマンドを
新たに追加してあげねばならない)ことに気付くのにものすごく時間が
かかったこと
の3点により、お返事が遅れました。いずれにせよ、問題はほぼ理想的に
解決しましたので、ご報告致します。

どうもありがとうございました。

[ ]
RE:10739 フォルダのソートNo.10740
ひろ さん 03/01/17 12:48
 
 TUBU-RED さん今日は、ひろです。
 既に問題は解決しているようですが、一箇所だけコメントを。
> >ライブラリに公開されている「複数ファイルにマクロ実行 Ver.1.00」
> を秀丸・鶴亀両方のライブラリから探しましたが見付かりませんでした。
 すいません。アップロードするのを忘れていたようです(~^;。

[ ]
RE:10739 フォルダのソートNo.10779
山紫水明 さん 03/01/19 21:50
 
 TUBU-REDさん,こんばんは。

》(1)runコマンドで秀丸を新しく働かせて自分自身を実行した場合、
》変数に格納した値が消えてしまうこと(クリップボードで解決しました)
》(2)grepコマンドで、存在しないフォルダを探そうとしたときに、大量の
》秀丸が開いて困ったことになること

  これは改造されたマクロについての話ですね。オリジナルのでは,変数を格納
したり,存在しないフォルダを探すことはないと思いますので。

》(3)//確認が必要なければ,以下3行コメント化
》    question "変更を保存しますか?";
》    if( result == yes ) save;
》    else #i = #i - 1;
》のところで、必要が無いので丸ごとコメント化してしまったところ、
》せっかく並べ替えたsubdir.binが保存されない(saveコマンドを
》新たに追加してあげねばならない)ことに気付くのにものすごく時間が
》かかったこと

  じつは私の方でも,これに気づいてすでに直していました。コメントがいただ
いた後にご返事しようと思っていたところです。よけいな手間をかけさせて申し
訳ありません。

》いずれにせよ、問題はほぼ理想的に解決しましたので、ご報告致します。

 ともあれ,お役に立てて何よりです。安全に使えることが確認できて,こちらも一
安心です。(^^;
  私の方でも少し改造したものを,ライブラリにアップしました。

     では, (^^)/~
                                        山紫水明

[ ]