外部ツールにおいて、多重取り込み、取りこぼしが

  1. 外部ツールのコマンドプロンプトで、例えば
    dir
    のある行にカーソルがある場合、"C:>dir"の結果を新規文書に取り込む設定をしています。

    ある行が、二度取り込まれて連続して表示される場合があります。
    具体的にはコンソールで

    C:>dir
    A.txt
    B.txt
    C.txt

    の場合、取り込まれた結果が

    A.txtA.txtB.txt
    C.txt

    です。

    v2.6.7のzip版、32と64の両方で試しました。両者で失敗する場所は異なります。

    なお、実際に実行する命令はcscript.exeと自作のjsファイルです。

    以前にプラグインを作った際の知見として、これはMeryが原因ではなくMeryで使用しているライブラリの不具合のようです。

    対症療法としてその自作jsファイルの出力部分を
    WScript.Stdout.WriteLine(s);
    から
    WScript.Stdout.Write(s);
    WScript.Stdout.Write("\n");
    としても結果は同じ。

    WScript.Stdout.Write(s);
    WScript.Stdout.Write("\n");
    WScript.Sleep(100)
    とすると症状は逆に悪くなります。

    対処法はありますか?

     |  tokumei  |  返信
  2. ご不便をおかけして申し訳ございません。

    外部ツールでコマンドプロンプトの内容をアウトプットバーに出力したときに取りこぼしが発生する問題ですが、これは Mery Ver 2.6.10 で修正済みとなっています。

    Ver 2.6.7 では問題が発生しますので、差し支えなければ Ver 2.6.10 以降、または最新版へアップデートいただければと思います。

    また、コマンドプロンプトの内容を出力する処理速度も Ver 2.6.7 と比べて安定性の向上と 10 倍以上の高速化が施されています。

    以下、Ver 2.6.10 の更新内容から抜粋
    -
    <アウトプットバーにおけるリダイレクト処理の安定性をもっと向上>

    [外部ツール] で [アウトプットバーを使用する] にチェックを入れると、コマンドラインツールの標準出力をアウトプットバーに表示できるのですが、この機能の安定性をもっと向上させました。

    大変な検証作業にご協力くださったみなさん、ありがとうございました。

    ご報告いただいた時点では、環境にもよりますが 10 万行ぐらいの標準出力を受けると「応答なし」になったり、データの取りこぼしが発生していました。

    今回、研究に研究を重ね独自の解釈で作り上げた「イイ感じ出力」を採用したことで、200 万行以上 のデータで検証しまして、安定性の向上 (応答します) と高速化 (当社比 10 倍です) がされていることを確認しました。(500 万行まで確認)
    -

     |  Kuro  |  返信
スポンサーリンク