• ベストアンサー

VB2005を使ってバイナリファイルの中身をHEX変換してテキスト表示したい。

VBは初心者ですが、以下のような事をVB2005を使って実現したいのですが、参考コーディングがありましたら教えて下さい。 ・バイナリファイルファイルの中身を可変の長さ(オープン時に変換の長さは決定している)をHEXに変換してテキスト表示したい。

  • 9_chan
  • お礼率81% (170/208)

質問者が選んだベストアンサー

  • ベストアンサー
  • kero_mio
  • ベストアンサー率90% (94/104)
回答No.1

バイナリファイルの例じゃないんですが、 DataSetの中身をHEX出力(DumpFile)にして出力している 例ならあります。 http://techbank.jp/vbnet/DumpFile.html 基本的には、これの応用かと。 具体的には、String.FormatでHex変換して出力したり 画面表示したりすることができます。 Private Shared Sub ByteDataWrite(ByVal sw As StreamWriter, ByVal s As String)   Dim encode As Encoding = Encoding.GetEncoding("Shift_JIS")   For Each b As Byte In encode.GetBytes(s.ToCharArray())     sw.Write(String.Format("{0:X2} ", b))   Next End Sub ご参考になれば幸いです。

参考URL:
http://techbank.jp/vbnet/DumpFile.html
9_chan
質問者

お礼

有難うございました。 参考にします。

関連するQ&A

  • またまたバイナリ→テクスト

    VBは5で、Excle2000のVBAでやってます。バイナリデータ→テクストデータに 128バイナリデータを添え字を使って1バイトごとに抽出DATA_PS = DATA_PS & 変換関数 というふたつの部分のリファレンスが正しくかけなくて 困ってます。Getを使って1バイトづつとりだして、Hexを使って変換するというものだそうです。 誰か教えてください。

  • テキストファイルをバイナリファイルに変換

    -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, 130, 120, 120, 109, 100, 100, 94, 91, 90, 89, 87, -32768, 78, 71, … と続いていくテキストファイルのデータをバイナリデータにC言語で変換したいのですが、どうすれば変換出来るのでしょうか。

  • VB6にてHEXコード「EE」をファイルに書きたい。

    VB6を使用して、HEXコードの「EE」をテキストファイルに出力しようと考えています。 私が確認したところ HEXコードの「DF」は、Chr(&HDF)にて出力できるのですが、 HEXコードの「E0」以降はうまく出力できません。 どなたかお解りになる方ご教授を、よろしくお願いします。

  • バイナリファイルをテキストファイルに変換する方法を教えて頂けませんか。

    こんにちは。 バイナリファイルをテキストファイルのように読み込んだり、書き込んだりすることは可能でしょうか。バイナリファイルをテキストファイルとして扱う良い方法があれば是非ご教授頂きたいです。 以下は自分なりに考えたプログラムなのですが、すごく文字化けして出力されてしまいます。どこがいけないんでしょうか。 ####プログラム#### #include<stdio.h> int main(){ FILE *fp,*fp2; char str[1024]; //file.txtはバイナリファイルなのでバイナリモードで開く if((fp = fopen("file.txt","rb")) == NULL){ printf("file.txt:open error"); exit(-1); } //out.txtはテキストファイルとして保存したいのでテキストモードで開く if((fp2 = fopen("out.txt","at")) == NULL){ printf("out.txt:open error"); exit(-1); } //一行ずつバイナリファイルをテキストファイルにして保存 while((fgets(str,1024,fp)) != NULL){ printf("%s\n",str); fprintf(fp2,"%s\n",str); } fclose(fp); fclose(fp2); return 0; } ####ここまで#### 以下が出力されたテキストファイル(out.txt)です。 ^A^Dc ^A^D^L<87> ^Y<98>X^?m?;^D&ordm;?^QI&egrave;&Ccedil; ^A^Dc ^A^D^L<87> ^Y<98>X^?m?;^D&ordm;?^QI0g 酷い文字化けを起こしてしまっています。 解決方法をご存知であれば教えて頂けないでしょうか。どうぞよろしくお願いします。

  • テキストファイルのデータからバイナリを作りたい

    現在、テキストデータとしてCSVファイル1つあたり8バイトのデータが1000個ほどのデータが書かれているファイルがあります。このデータをバイナリファイルへ数値も変換して行きたいと思っています。 たとえば1個目のデータ”12345678”というテキストデータをバイナリの"12345678"に変換したらそれを0x00番地に並べて、そして2個目のデータ”87654321”というデータをバイナリにしたらそれを0x90離れた場所に置いていき、それを1000回繰り返して、結果をバイナリファイルで出力したいのですが、何か簡単にできるフリーソフトなどありませんでしょうか? また、プログラムとかでも簡単にできるのならそうしたいのですが、どうしたらよいか教えていただけないでしょうか?

  • VB(VBA)で、バイナリデータを使ってテキストファイルを作成したいの

    VB(VBA)で、バイナリデータを使ってテキストファイルを作成したいのですが、 例えば、"A"が一文字のみのShift-JIS もしくはunicodeのテキストファイルを作るため、 (下記の確認はShift-jis で行っています。) Dim ByteData As Byte ByteData = AscW("A") Open "C:\A.txt" For Binary Access Write As #1 Put #1, 1, ByteData Close #1 としました。 できあがったファイルをバイナリエディタで確認すると、  41 となっています。 (Unicode は 41 00 2バイト文字でリトルエンディアンのため) この41は、"A" の文字コード(Shift-JIS)「65」の16進表記です。 この「41」という値を使ってバイナリモードでテキストファイルを作成したいのですが、 どのようにすればよいでしょうか? 上記 Put #1, 1, ByteData の部分を、 1.Put #1, 1, 41 としたところ、通常表示はできないファイルができあがったみたいです。 バイナリモードで 「29 00 20 20」でした。 文字コード00 に該当する文字がないためだと思います。 2.Put #1, 1, "41" としたところ、「41 」(バイナリモードで 「34 31 20 20」) (41の後ろは半角空白) で×でした。 3.Put #1, 1, CLng("&H" & 41) としたところ、通常表示はできないファイルができあがったみたいです。 バイナリモードで 「41 00 00 00」でした。 4.ByteData = CLng("&H" & 41) Put #1, 1, ByteData これでやっとできました。 この他にも方法があるのか?と思い、質問させていただきました。 ご指導よろしくお願いいたします。

  • vb2008 テキストファイルを開くには?

    vb2008 テキストファイルを開くには? VB2008を使用している者です。今回もアドバイス宜しくお願い致します。 あるテキストファイルをOPENしたいと思っているのですが、やり方がわかりません。 VB2008でファイルを開く方法として一般的なのがOpenFileDialogを使用した方法ですが、 これだといちいち開きたいファイルを指定しなければなりません。その都度ファイルを 指定するのではなく、開きたいファイルをピンポイントで開きたいのです。 いろいろ検索しましたが、全くヒットしませんでした。 皆様のご指導、宜しくお願い致します。

  • バイナリファイルなのですが・・・。

    研究用のデータを受け取ったのですが、テキストではなくバイナリファイルでもらいました。データを取得した人によると、↓にある装置を使って時系列データをintel86系バイナリフォーマットで記録したと言っていました。 http://www.sonysms.co.jp/j/products/datarecorder/pdf/SONY_PCscan3_jp.pdf どうにかしてこのバイナリファイルをテキストに変換して、データを取得したいのですが、どうしたらよいのでしょうか? ネットにあるバイナリ→テキスト変換ツールを使いましたが、16進数の数字が羅列されるだけで、エクセルなどで読めるデータ形式にはなりませんでした。

  • VB6.0でのバイナリアクセス

    VB6.0でバイナリアクセスでファイルをオープンした場合、 例えば、test.datというファイルに 111110000011111 と書き込まれていて、 この[00000]の部分を消去して、 1111111111 というファイルを作成するにはどうしたらよいでしょうか? ただ、これを同一ファイル上で行いたいのです。 ですので、新たにtest2.datを作るとか、 test2.datを作ったあとにリネームするということはしたくないのです。 宜しくお願いいたします。

  • バイナリーファイルの変換

    CCDカメラで取り込んだ画像ファイルがどうやらバイナリーで出力されているようなのです。(拡張子は.dat)テキストで読めるようにしたいのですが、どのように処理すればよいのでしょうか?Cプログラムは多少組めます。参考図書などあるようでしたらご教示いただけたら幸いです。よろしくお願いいたします。

専門家に質問してみよう