- ベストアンサー
バイナリファイルの特定番地のHEXデータ表示方法
- バイナリファイルの特定番地のHEXデータをテキストボックスに表示させる方法について質問です。
- 現在、バイナリファイルの特定番地から6バイトのHEXデータを抜き出し、テキストデータとして表示させたいと考えています。
- プログラム内ではStreamReaderを使用し、指定番地からバイトを読み込んでいますが、そのデータをHEX形式でテキストボックスに表示する方法を教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。以下で出来ませんか。 private: System::String^ ToHEXString(array<wchar_t>^% refArray) { //array<wchar_t>型バッファからHEXへの変換 System::String^ sHex = gcnew System::String(0, 0); int complete = 0; for each(wchar_t wc in refArray) { //HEX変換 sHex += System::String::Format("{0:X2}", int(wc)); //最後以外はカンマを付加する if(++complete < refArray->Length)sHex += ", "; } return sHex; } private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { //指定したファイル名でStreamReaderを設定する try{ System::IO::StreamReader^ sr=gcnew System::IO::StreamReader("sample.txt"); //受け皿 array<wchar_t>^ buf=gcnew array<wchar_t>(6); //先頭から0x1f65バイト動かす sr->BaseStream->Seek(0x1f65,System::IO::SeekOrigin::Begin); //6バイト読み込む sr->Read(buf, 0, buf->Length); //此処でテキストボックスに入れる this->textBox1->Text=this->ToHEXString(buf); } catch(System::Exception^ ex){ System::Windows::Forms::MessageBox::Show(ex->ToString()); } //this->textBox1->Text = L"変更1"; this->textBox2->Text = L"変更2"; this->textBox3->Text = L"変更3"; }
お礼
回答ありがとうございました。返事遅れて大変申し訳ありません。 教えていただいたとおり、プログラムしたところ、表示したい 文字が表示されました。 改めてありがとうございました。