【質問】同じファイルを別タブ表示

  1. 同じファイルを別タブ表示することは可能でしょうか?

    用途として、
    ログファイルなどを、処理開始前後で比較して見たい場合に、
    処理前に一度開いておいて、
    処理後に同じファイルを別タブで開くようなことが行いたいと思います。

     |  sinh  |  返信
  2. > 同じファイルを別タブ表示することは可能でしょうか?

    仕様上、同じファイルはひとつしか開くことができません。

    はじめにログファイルを開いて、その内容を別のタブにコピー貼り付けしておいて、
    処理後のファイルと見比べる。という感じではダメでしょうか…?

     |  Kuro  |  返信
  3. 追記型のログファイルなら,ファイル最後の行にブックマークしておくというのはどうでしょうか.
    これなら何行以降が追記されたのかすぐにわかります.
    http://www.haijin-boys.com/wiki/%E3%83%96%E3%83%83%E3%82%AF%E3%83%9E%E3%83%BC%E3%82%AF%E4%B8%80%E8%A6%A7%E3%82%B8%E3%83%A3%E3%83%B3%E3%83%97
    のマクロを使えば,ジャンプも簡単ですよ.

    上書きタイプなら,Mery 上で比較するより WinMerge などの差分チェック用ソフトを使った方が見やすいと思います.
    泥臭いですが,書き換え前のファイルを別名で保存しておくのが一番やりやすいのでは?

     |  ks  |  返信
  4. こんばんは。

    >処理後に同じファイルを別タブで開くようなこと
    同一のファイル名で新しく開くことはできないので、こんな感じでしょうか。
    「読み直しますか?」に「いいえ」で答えた後に以下のマクロを実行すれば、新しいファイルの内容を持った別タブ(無題ドキュメント)が得られます。

    var file_name = document.FullName;
    Editor.NewFile();
    Editor.Documents.Item( Editor.Documents.Count-1 ).Text = openTextFile( file_name );

    function openTextFile( fileFullName ){
        var adTypeBinary = 1, adTypeText = 2;
        var adReadAll = -1,   adReadLine = -2;
        var ADO = new ActiveXObject( "ADODB.Stream" );
        ADO.type = adTypeText ;
        ADO.charset = "_autodetect"; // "_autodetect_all", "utf-8", "shift_jis", "unicode", ……
        ADO.open();
        ADO.loadFromFile( fileFullName );
        var src = ADO.readText( adReadAll );
        ADO.close();
        return src;
    };

    いかがでしょう。

     |  手石  |  返信
  5. 回答ありがとうございます。

    手石さんのマクロを使用することで、
    別タブ表示することができました。
    ありがとうございました。

    > こんばんは。

    > >処理後に同じファイルを別タブで開くようなこと
    > 同一のファイル名で新しく開くことはできないので、こんな感じでしょうか。
    > 「読み直しますか?」に「いいえ」で答えた後に以下のマクロを実行すれば、新しいファイルの内容を持った別タブ(無題ドキュメント)が得られます。

    > var file_name = document.FullName;
    > Editor.NewFile();
    > Editor.Documents.Item( Editor.Documents.Count-1 ).Text = openTextFile( file_name );

    > function openTextFile( fileFullName ){
    >     var adTypeBinary = 1, adTypeText = 2;
    >     var adReadAll = -1,   adReadLine = -2;
    >     var ADO = new ActiveXObject( "ADODB.Stream" );
    >     ADO.type = adTypeText ;
    >     ADO.charset = "_autodetect"; // "_autodetect_all", "utf-8", "shift_jis", "unicode", ……
    >     ADO.open();
    >     ADO.loadFromFile( fileFullName );
    >     var src = ADO.readText( adReadAll );
    >     ADO.close();
    >     return src;
    > };

    > いかがでしょう。
    >

     |  sinh  |  返信