掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
VBA バイナリのデータを1byteずつファイルに書き出すには?(ADO使用) (ID:80392)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> ・Writeメソッドの引数に「Byte型」の値は指定できません。 > 指定できるのは、「Byte型の配列」です。 が気になって、Writeメソッドの引数を、 Variantを指定から、Byte型配列にしてみたら解決いたしました。 魔界の仮面弁士様、 ありがとうございました。 Public Sub WriteTest() Dim sReadPath As String '読み込みファイルパス Dim StmRead As Object '読み込み用 Dim vReadData As Variant '読み込んだデータ格納 Dim lReadIdx As Long 'vReadData()のインデックス Dim sWritePath As String '書き込みファイルパス Dim StmWrite As Object '書き込み用 Dim bWriteData() As Byte '書き込んだデータ格納 Dim lWriteIdx As Long 'bWriteData()のインデックス Const adTypeBinary = 1 Const adSaveCreateOverWrite = 2 '変数初期化 ReDim bWriteData(0) lWriteIdx = 0 sReadPath = "G:\usr\kato\gui_tool\test.txt" sWritePath = "G:\usr\kato\gui_tool\test2.txt" '読み込むファイルの設定 Set StmRead = CreateObject("ADODB.Stream") StmRead.Open StmRead.Type = adTypeBinary StmRead.LoadFromFile sReadPath vReadData = StmRead.Read '一気に読み込む '作成するファイルの設定 Set StmWrite = CreateObject("ADODB.Stream") StmWrite.Open StmWrite.Type = adTypeBinary For lReadIdx = 0 To UBound(vReadData) If (vReadData(lReadIdx) = &HA) Then '〜 vReadData(lReadIdx)を解析する処理 〜 End If ReDim Preserve bWriteData(lWriteIdx) 'バッファ更新 bWriteData(lWriteIdx) = vReadData(lReadIdx) lWriteIdx = lWriteIdx + 1 Next lReadIdx '一気にファイルに書き出す StmWrite.Write bWriteData StmWrite.SaveToFile sWritePath, adSaveCreateOverWrite 'StmReadを閉じる StmRead.Close Set StmRead = Nothing 'StmReadを閉じる StmWrite.Close Set StmWrite = Nothing End Sub
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.