2度目の editor.documents

  1. // 秀丸のウインドウ管理の擬制
    // アクティブな document は、0 の添え字にする。
    function get_documents(){
        var ad = editor.ActiveDocument;
        var arr = [ ad ];
        var d;
        for( var docs = new Enumerator(editor.documents); ! docs.atEnd(); docs.moveNext() ){
            d = docs.item();
            if( d != ad ) arr.push( d );
        }
        return arr;
    }
    var ds;
    for( var c = 1; c <= 2; c++ ){
        document.Writeln("第 " + c + " 回目");
        ds = get_documents();
        for( var i=0; i < ds.length; i++ ){
            document.Writeln( "(" + i + ")\t" + ds[i].FullName );
        }
    }
    /*
    ●準備
    a.txt, b.txt, c.txt を開いて実行
    アクティブなのは、a.txt
    ●結果
    第 1 回目
    (0)    D:\program\Mery\My Macros\a.txt
    (1)    D:\program\Mery\My Macros\b.txt
    (2)    D:\program\Mery\My Macros\c.txt
    第 2 回目
    (0)    D:\program\Mery\My Macros\a.txt
    ●論評
    2回目は、他の doc オブジェクトがなくなってしまう。
    editor.documents を使った、閉じるスクリプトだと気づきにくい
    */

     |  kinzoku  |  返信
  2. ご報告ありがとうございます。

    ぐふぅ・・・。完全に凡ミスでした、、、new Enumerator が呼ばれたときに カーソルを 0 に
    戻すの忘れてました・・・(汗

    すみませんっ!すぐに修正します!

     |  Kuro  |  返信