none
【C#】byte配列をStringに変換して出力 RRS feed

  • 質問

  • お世話になります。

    C#で、byte配列の値をString(System.text.Encoding.ASCII.GetStringを用いて)に変換して、

    Console.WriteLine()で出力すると、Stringで結果が出力されました。

    しかし、ここでConsoleではなく

    RichTextBoxやTextBoxで出力しようとすると、実行しても何も値が出てきません(コントロールの中身が空のまま)。

    これは、何が原因で起こっているのでしょうか?

    成功例:

    Console.WriteLine(System.Text.Encoding.ASCII.GetString(resBytes));

    失敗例:

    richTextBox1.SelectedText = System.Text.Encoding.ASCII.GetString(resBytes);

    resBytesは、byte配列です。



    • 編集済み chmod_777 2018年9月18日 6:58
    2018年9月18日 6:58

回答

  • 前から何度も同じような質問を繰り返してますが、そもそもが何らかのデータをシリアル化して送信したいというところから始まっていて、このスレッドもその延長線上にあると想像してます。

    であれば、局所的な質問だけでなく、全体のシナリオを含めて何がしたいのかを書いてください。

    全体的なやりたいことのごく一部を切り出して質問すると、もしその質問が全体的なやりたいことを実現するのには見当違いだった場合(前の質問がそうでしたよね)、回答も当然やりたいことを実現するには的外れになってしまいます。そうすると、見当違いと的外れのやり取りが繰り返されるだけになって、なかなか解決にたどり着けません。お互い時間の無駄でもありますし。

    局所的な質問の部分は実現が無理 or 他にもっと良い方法があるような場合、「それはできない or そのやり方は適切ではないけど、やりたいことはこうすれば実現できる」というような代案も出てくるかもしれませんし。
    • 編集済み SurferOnWww 2018年9月18日 9:32 誤字訂正
    • 回答としてマーク chmod_777 2018年9月19日 1:34
    2018年9月18日 9:31

すべての返信

  • VS2015 + Win7の環境にて、
    下の簡単なコードを試してみましたが、正常に値がセットされました。
    string型の変数に変換結果を代入し、まずは意図した値になっているか確認されてみてはいかがでしょうか。
            private void Form_Load(object sender, EventArgs e)
            {
                byte[] teststr = new byte[10];
    
                for (int i = 0; i < 10; i++)
                {
                    teststr[i] = (byte)('a' + i);
                }
                richTextBox1.SelectedText = System.Text.Encoding.ASCII.GetString(teststr);
            }


    2018年9月18日 7:20
  • 前から何度も同じような質問を繰り返してますが、そもそもが何らかのデータをシリアル化して送信したいというところから始まっていて、このスレッドもその延長線上にあると想像してます。

    であれば、局所的な質問だけでなく、全体のシナリオを含めて何がしたいのかを書いてください。

    全体的なやりたいことのごく一部を切り出して質問すると、もしその質問が全体的なやりたいことを実現するのには見当違いだった場合(前の質問がそうでしたよね)、回答も当然やりたいことを実現するには的外れになってしまいます。そうすると、見当違いと的外れのやり取りが繰り返されるだけになって、なかなか解決にたどり着けません。お互い時間の無駄でもありますし。

    局所的な質問の部分は実現が無理 or 他にもっと良い方法があるような場合、「それはできない or そのやり方は適切ではないけど、やりたいことはこうすれば実現できる」というような代案も出てくるかもしれませんし。
    • 編集済み SurferOnWww 2018年9月18日 9:32 誤字訂正
    • 回答としてマーク chmod_777 2018年9月19日 1:34
    2018年9月18日 9:31