1

これは、ソケット ストリームから取得したサンプル文字列です。

\033[H\033[J\033[1;30HSUPERVISOR MAIN MENU\033[6;5H 0.  Exit         Exit\033[7;5H 1.  Help         Display help\033[8;5H 2.  Control      Calling lists and users\033[9;5H 3.  Campaign     Campaigns\033[10;5H 4.  Manage  

Unix/Linux シェルを開くと予想される出力を見たい場合は、echo -eと入力し、その後にスペースを入力し、その後に上記の文字列を一重引用符で囲んで Enter キーを押します。出力は次のようになります。

                     SUPERVISOR MAIN MENU


 0.  Exit         Exit
 1.  Help         Display help
 2.  Control      Calling lists and users
 3.  Campaign     Campaigns
 4.  Manage

メモリ内にある必要があることを除いて、同じ出力が必要です...後で作業する必要があります...任意のアイデア。

4

1 に答える 1

1

数時間前にほぼ同じ質問をしました: Open Source C# VT100 Server。vt100 エスケープ コマンドを理解するクライアント ライブラリが必要です。

しばらく検索しましたが、現在のところ、非常に優れた vt100 C# ライブラリは見つかりませんでした。私はカスタムのものを使い始めましたが、実際には左右の矢印とバックスペースを解釈するだけでよいので、それほど時間はかかりませんでした。

幸いなことに、vt100 標準は非常に無差別であり、過度に複雑ではありません。あなたの例のエスケープコマンドを理解するためにコードを作成するのに、それほど長くはかからないと思います。このリンクには、 VT100 エスケープ シーケンスの簡潔なリストがあります (少し下にスクロールする必要があります)。別の良いサイトはvt100.netです。

あなたの例では、エスケープ シーケンスは 8 進数になっています。最初のエスケープ シーケンスは次のとおりです。

\033[H

これは以下の ASCII に変換され、カーソル位置の設定に使用されます。

ESC [ H

二つ目は

\033[J

これは以下の ASCII シーケンスに変換され、画面の最後まで行をクリアすることを意味します。

ESC [ J 
于 2009-10-29T13:22:39.177 に答える