• ベストアンサー

VBでバイナリエディタを作成について

VisualBasic6 SP5でバイナリエディタを作成しようとしているのですが、 例えばVariant型に格納したバイナリ文字列を16進表示で表示させたり、その逆の16進数を Variant型の16進数に変換するよい関数はありますか? また、バイナリエディタで良くある右側のテキスト表示ですが、ASCで表示させているだけでしょうか? よろしくお願いいたします。

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

  • ベストアンサー
  • mcq
  • ベストアンサー率48% (45/93)
回答No.1

Hex関数とfor文の組み合わせで地道に作る他ないようです。 16進表記の文字列を数値に変換するときは、Val("&h" & str)です。 テキスト表示はバイナリエディタによって差がありますが、&h20~&h80ならASCで表示し、それ以外なら"."等で表示してしまうのが最も簡単です。

関連するQ&A

  • 3DSのバイナリエディタ

    SDカードにバックアップしたsavファイルをバイナリエディタで読み込み数値を編集したいのですが、ゲーム中の数字が検索をしても見つかりません。7775146という数を編集したいため16進数に変換して76A3AAを文字列ではなく16進数で入力して検索をしました。見つからない原因は何ですか?見つける方法を教えてください。バイナリエディタでなくても指定アドレスを見つけ編集する方法があるのならばそれを教えてください。

  • バイナリエディタって?

    ファイルをいろいろなアプリケーションプログラムから 開くことができますが、バイナリデータとしてみる あるいは16進数表示のデータとして表示するのはバイナリエディタとやらを使ってひらくのでしょうか? それってどこにあるのかわかりません。フリーウエアでダウンロードするのか プリインストールされているのでしょうか。昔はダンプリストとやらで ずらずらっとファイルを16進数表示できてましたが。 このあたりについておわかりの方お教えください。

  • VBAでバイナリエディタを作ろうとしています

    テキストファイルを内部でバイナリとして開いて 16進数のダンプファイルとして新たなテキストに保存することはできたのですが 逆がどうしてもできません。 やり方としては、 03 E3 BD 71 80… のようなテキストデータをバイナリにして16進数にして保存したテキストファイルをダイアログから呼び出してもう一度元のテキスト文章に戻すという作業です。 とりあえず、まずは以下のコードでエクセル内で16進数を元の文章データに変換しようとしています。 Sub binaryToText() Dim fname As String Dim str() As Byte Dim row As Integer row = 1 fname = "Test.txt" '16進数ファイル Open fname For Binary As #1 Do Until EOF(1) ReDim Preserve str(row) Get #1, , str(row) row = row + 1 Loop Close #1 End Sub hex関数やchr関数を使う必要があるのでしょうか? VBAは始めたばかりで根本的なところで間違っているかもしれませんがよろしくお願いします。

  • バイナリファイルの書き出し

    バイナリファイルにデータを書き込むプログラムを作りたいと思っています。実は、Standard MIDI Fileのバイナリファイルを作りたいんです。 SMFについては、今まで、直接バイナリエディタで開き、16進数の数字をいじくって、データ書き換えたりしてたので直接バイナリファイルに16進数での数字を書きたいんです。 たとえば、テキストファイルに903C408360803C0000みたいに吐き出すプログラムでは、バイナリファイルに書き出してからバイナリエディタで開くと こいつがさらに16進数に変換されてしまいますよね? そうならないようにするにはどうやればいいんですか?

  • 表示イメージのままコピーできるバイナリエディター

    こんにちは。 たまにBzエディターを使っている者です。 題名通りなのですが、表示されたイメージのままクリップボードにコピーできるバイナリエディターを教えてください。 やりたいのは、バイナリエディターでコピーしたい部分を選んでテキストエディターに次のような形で貼り付けたいのです。 address 16進表示 キャラクタ表示 9999999 FFFFFFFF ~ FFFFFFFF CCC~CCC 9999999 FFFFFFFF ~ FFFFFFFF CCC~CCC よろしくお願いします

  • テキストデータをそのままバイナリへ

    初心者です。 テキストデータ(ASCII)として取り込んだ 「05 50 0E」 といった文字列を そのままバイナリデータ(16進)としての 「05 50 0E」 に変換したいのですが、こういった処理をする関数ってあるでしょうか? もしなければ作ってみたいのですが、その際の考え方や有用な関数などありましたら教えていただけると嬉しいです。

  • C#でバイナリデータをテキストフォームへ表示させるには?

    C#でバイナリデータをテキストフォームへ表示させるには? C#でバイナリファイルをテキストへ変換するツールを作成しています。 バイナリデータを配列へ格納し、その配列をテキスト変換してテキストフォームへ出力させるという処理を作成したいのですが、どうすれば良いのかどうしてもわかりません。 どのようなコードをどのようにして書けばよいのか、ご教示いただけないでしょうか。 よろしくお願いします。 (ちなみにC#を始めて1週間ほどです)

  • バイナリファイルの計算方法

    バイナリデータをはじめて扱う初心者です。 バイナリデータファイルからデータを読み出したいと思います。 環境はWindowsXPとLabView7.1です。 バイナリエディタで見てみると、  E8 03 と格納されている、2バイトshort型のデータがあります。 LabView7.1を使って、E8 03 という配列要素を読み出すことまではできました。 次に、この値を10進数で表現すると、いくつになれば正解なのでしょうか? (E8 03 という値をどのように計算して10進数にすればいいのでしょうか?) 私なりにプログラムした結果、-24か232のどちらかだと思うのですが自信がありません。 (データ自体が計測器が吐き出したデータなので、どのような値が入っているかわからないのです。 LabViewがビックエンディアンを使っていることも、正解に自信が持てない一因です) バイナリエディタで10進数に変換してくれるようなツールがあれば一番いいのですが。 ご存知の方がいらっしゃいましたら、ご教授ください。

  • バイナリデータの検索(VB.NET2008)

    バイナリファイルを読込み、バイト配列に格納しています。 aaa(0) = 0 aaa(1) = 90 aaa(2) = 0 aaa(3) = 255 aaa(4) = 255 aaa(5) = 0 aaa(6) = 255 この配列から、「FFFF」が見つかった位置を検索したいと考えています。 (上の例で言うと3を取得したい) 現在は配列の最初から最後まで1バイトずつずらして読込み、見つかった場所を特定しています。16進表記の文字列に変換し、文字列として検索する方法も考えましたが、どちらも非効率な気がしています。 他のやり方を知っている方がいましたら教えてください。 [環境] VB2008,XP32SP3

  • バイナリファイルの編集

    stirling,bzなどのエディタを用いて、バイナリファイルを編集しようとしています。 テキスト(a.txt)のデータをバイナリファイルにコピペしようとしたのですが・・・ テキストで「ff ff ff ff」と書いてあったデータが、バイナリファイルにコピペすると「4646~」というように変換されてしまいました。 バイナリファイルでも「ff ff ff ff」とコピーしたい場合はどのようにすれば良いのでしょうか?

専門家に質問してみよう