3

SATO (CG408 TT) の熱転写プリンターからラベルを印刷する C# アプリケーションを開発しています。

このために、SBPL (SATO のプログラミング言語) を使用しています。次のようになります。

<ESC>A
<ESC>H0050<ESC>V0100<ESC>L0303<ESC>XMSATO
<ESC>H0050<ESC>V0200<ESC>B103100*SATO*
<ESC>H0070<ESC>V0310<ESC>L0101<ESC>XUSATO
<ESC>Q1<ESC>Z

プリンターと通信して生データを送信するには、この手法に従っています。最初に、StringBuilder クラスを使用してエスケープ シーケンスを構築しようとしています。

StringBuilder sb = new StringBuilder();
              sb.AppendLine();
              sb.AppendLine("<ESC>A");
              sb.AppendLine("H0050<ESC>V0100<ESC>L0303<ESC>XMSATO");

等々....

<ESC>しかし、文字列ビルダー引数の一部を置き換えるにはどうすればよいですか。その文字 27 は知っていますが、それを AppendLine コマンドで使用する方法

前もって感謝します。

4

3 に答える 3

8
const char ESC = '\x1B';

これで、他の変数と同じように ESC を使用できます。esc を文字列に埋め込むこともできることに注意してください"\x1B"

StringBuilder の目的に反するため、などは行わない でください。ESC + "somestring" + ESC

あなたは出来る

StringBuilder sb = new StringBuilder();
          sb.AppendLine();
          sb.AppendLine("<ESC>A");
          sb.AppendLine("H0050<ESC>V0100<ESC>L0303<ESC>XMSATO");
String output = sb.ToString().Replace("<ESC>", "\x1B")

例えば

于 2011-04-01T14:37:11.430 に答える
1

これはうまくいくはずです

sb.AppendLine(((char)27).ToString());
于 2011-04-01T14:38:56.343 に答える