外部ツールにおいて、多重取り込み、取りこぼしが
-
外部ツールのコマンドプロンプトで、例えば
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 | 返信 -
ご不便をおかけして申し訳ございません。
外部ツールでコマンドプロンプトの内容をアウトプットバーに出力したときに取りこぼしが発生する問題ですが、これは 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 | 返信