|
>魔界の仮面弁士 さま
アドバイス有難うございます!
「Seekメソッド」と「Encodingクラス」を使用して、以下のようなコードで、目的のデータが取得出来ました。
<--- Code Start --->
'16進数文字列に変換
Dim myStartHex = Val(myStartPos)
Using Stream As System.IO.Stream = System.IO.File.OpenRead(myfilePath)
'ファイルの読取り開始位置をシーク
Stream.Seek(myStartHex, IO.SeekOrigin.Begin)
'バイナリ読み込み
Using Reader As New System.IO.BinaryReader(Stream)
' ストリームから指定バイト読み込みバイト配列として取得する
Dim Data() As Byte = Reader.ReadBytes(myBitCount)
'Shift-JISにエンコード
Dim sjisEnc As System.Text.Encoding = System.Text.Encoding.GetEncoding(932)
myBinary = sjisEnc.GetString(Data)
End Using
End Using
<--- Code End --->
モジュールとして作成しており、引数に
・ファイルパス(myfilePath)
・読取り開始アドレス(myStartPos)(「&H120」の形式)
・読み取るアドレス数(myBitCount)
・返り値(myBinary)
を指定します。
動作的には問題ないかと思うのですが、修正点があればご教示頂けると幸いです。
|