ファイル読み込んで内容を16進数で表示するツールを、けっこう前に作成しました。
ソースコードは GitHub で公開しています。
主な処理
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
private void button1_Click(object sender, EventArgs e) { //ファイルを開くダイアログの生成 var of = new OpenFileDialog(); //ダイアログの表示 var d = of.ShowDialog(); //OKボタンが押されたらデータを読み込む処理へ if (d != DialogResult.OK) return; //ファイルパスの取得 textBox1.Text = reed(of.FileName); MessageBox.Show("完了"); } private static string reed(string filepass) { //ファイルをメモリへ読み込む using (var fs = new FileStream(filepass, FileMode.Open, FileAccess.Read, FileShare.None)) //バイナリ形式でプログラム内に読み込む using (var br = new BinaryReader(fs)) { //ファイルサイズを求める var fi = new FileInfo(filepass); var filesize = (int)fi.Length; //配列の長さをファイルサイズにして定義 //データを格納する変数 var data = new byte[filesize]; var sb = new StringBuilder(filesize * 2); //1バイトずつ取得しながら16進数で表示 for (var i = 1; i < filesize; i++) { data[i] = br.ReadByte(); sb.AppendFormat("{0,2:x2} ", data[i]); } return sb.ToString(); } } |
コメント