- ベストアンサー
教えてください。VBでのバイナリデータ。
EUCコードで作成されたlndatファイルをオープンし、 コード変換するプログラムを作っています。 データの所得時にHexを使っているのですが、 所得データが 000000000000000000220801011200012000 となっています。 元データは 000000000000000000000000000000000000220080010001012000000120000000000000 なため、この様に所得したいのですが、上手く所得できません。 こういったデータの所得は可能なのでしょうか? また、自分の作成したソース自体にバグがあるのでしょうか? よろしかったら教えてください。 >>以下ソース Dim Data As Byte '所得データ(1バイトごと) Dim Data_A As Variant 'ファイルから所得したデータ(ALL) Dim I As Long 'カウンター Dim File_Name As String 'ファイル名 Dim Filnm As Long 'ファイル番号 I = 1 Data_A = "" Filnm = FreeFile File_Name = "AA.lndat" Open App.Path & File_Name For Binary As #Filnm Do While EOF(Filnm) = False Get #Filnm, I, Data Data_A = Data_A & Hex(Data) I = I + 1 Loop Close #Filnm >>開発環境 VB5.0(SP3) Win2000 フリーのDLL等は使用不可能とお考え下さい。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>Data_A = Data_A & Hex(Data) の所を Data_A = Data_A & Right$("00" + Hex(Data), 2) と書き換えて下さい。
お礼
お答え有難うございます。 こちらの方が、強制的に0埋めするより安定するのかも。 (Format関数は結構不安定(!?)と聞いたことがあったので…) ご教授有難うございます(^o^)。