私のプログラムは、DDS イメージ ファイルを読み取り、それをバイト配列として格納します。ユーザーに生データを TextBox フォームで表示できるようにしたいので、最初に次のコードを使用してバイト配列を文字列に変換します。
string data = System.Text.Encoding.ASCII.GetString(bytes);
次に、TextBox テキストを設定します。
textBox.Text = data;
私が抱えている問題は、テキスト ボックスにすべてのデータが表示されていないことです。これがどのように見えるかのスクリーンショットです:
ご覧のとおり、最初の数文字のみが表示されます。これは、テキスト ボックスが文字列の末尾として解釈するヌル ターミネータが文字列に含まれているためであると想定しています。これは、デバッガーのウォッチ ウィンドウから直接コピーした文字列の最初の 50 文字程度のコピー ペーストです。
DDS |\0\0\0\a\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\
ご覧のとおり、最初のヌル文字は「DDS |」の直後にあります。これが、TextBox に表示されるすべての理由を説明しています。
表示したい内容は、未加工の DDS ファイルを Notepadd++ などのテキスト エディターで編集した場合に表示されるものと似ています。
Notepad++ で DDS ファイルを開くと、次のようになります。
私の質問は、メモ帳 ++ が表示するのと同じ方法で TextBox (または RichTextBox) にデータを表示するにはどうすればよいですか?