1 件の投稿を表示中 (合計 7 個)
  • 作成者
    投稿
  • #31585
    snow
    参加者

    開発お疲れ様です。

    現状、editor.OpenFile()で存在しないファイルを指定すると、新規作成するかどうかのダイアログが表示され、これに「いいえ」と答えるとマクロが終了します。
    事前にファイルが存在するかどうか、またはOpenFile()で存在しない場合は新規ファイルが作られるような挙動は、実現できますでしょうか?

    よろしくお願いいたします。

    #31586
    Yutaka Emura
    キーマスター

    いつもお世話になっております。江村です。

    以下のように try ... catch を使って書いていただければマクロの継続が可能です。

    
    try {
        editor.OpenFile( ... );
    }
    catch(e) {
        editor.NewFile();
    }
    

    よろしくお願いいたします。

    #31598
    snow
    参加者

    ご返信ありがとうございます。

    すみません、前提条件が漏れていました。
    新規作成するかどうかを確認せずにNewFile()へ流したいのです。
    よろしくお願いいたします。

    #31600
    Yutaka Emura
    キーマスター

    いつもお世話になっております。江村です。

    それでは、以下のようにファイルが存在するかどうかを FileExists メソッドを使って、調べてから、OpenFile を呼ぶということで、いかがでしょうか?

    
    if( shell.FileExists( ... ) ) {
        editor.OpenFile( ... );
    }
    else {
        editor.NewFile();
    }
    

    よろしくお願いいたします。

    #31604
    snow
    参加者

    ありがとうございました。
    まさに、shell.FileExists()が、求めていたものでした。

    #31606
    snow
    参加者

    なぜかeeOpenAllowNewWindowを指定しても新しいウィンドウが開かれずにそのままロードしてしまうことがあるようで、現状は

    editor.NewFile();
    if (shell.FileExists(file)) {
        editor.OpenFile(file, eeOpenDetectUTF8);
    }
    

    とすることにしました。
    環境に起因する問題なのかは分かりません。

    #31608
    snow
    参加者

    失礼しました。OpenFile(file, 0, eeOpenDetectUTF8 | eeOpenAllowNewWindow) ですね…。

1 件の投稿を表示中 (合計 7 個)
  • このトピックに返信するにはログインしてください。