Stream オブジェクトを利用する

Streamオブジェクトを利用する

Sub Streamオブジェクトを使用()
Dim mySrm As New ADODB.Stream

With mySrm
  'ストリームを開く
  .Open
  'データの種類を指定
  .Type = adTypeText
  '文字セットを指定
  .Charset = "shift_jis"
  '書き出し内容を記述
  .WriteText "[data.txt]", adWriteLine
  .WriteText "ColNameHeader = True", adWriteLine
  .WriteText "CharacterSet = ANSI", adWriteLine
  .WriteText "Format = TabDelimited", adWriteLine
  .WriteText "Col1=商品コード Short", adWriteLine
  .WriteText "Col2=商品名 Text Width 20", adWriteLine
  .WriteText "Col3=仕入先 Text Width 20", adWriteLine
  .WriteText "Col4=単価 Currency", adWriteLine
  .WriteText "Col5=最終発注日 DateTime", adWriteLine
  
  'ストリームの内容をファイルとして保存
  .SaveToFile ThisWorkbook.Path & "\txt\4-48schema_sample.txt", adSaveCreateOverWrite
  .Close
End With

Set mySrm = Nothing

End Sub

ADOに用意されているStreamオブジェクトを使用すると、バイナリレベルでファイルやデータをら見書きすることができる。

Streamオブジェクトのプロパティ
プロパティ 説明
Charset 文字セットを指定
EOS 現在の位置がストリームの末尾にあるかどうかを判定
LineSeparator テキストストリームの場合、行末尾の改行記号の取得/設定を行う
Mode データの変更権限を指定
Position 現在位置を取得/設定
Size サイズを取得
State 対象になるオブジェクトが開いているか閉じているかを判定
Type データの種類をStreamTypeEnum値で指定

定数 説明
adTypeBinary 1 バイナリ データを表します。
adTypeText 2 Charsetで指定された文字セットにあるテキストデータを表します。
既定値

Streamオブジェクトのメソッド
メソッド 説明
Open Streamオブジェクトを開く
Close Streamオブジェクトを閉じる
Write バイナリデータを書き込む
WriteText テキストデータを書き込む
Read 指定したバイト数のデータを読み込む
ReadText 指定した文字数のデータを読み込む
LoadFromFile ファイルの内容を読み込むトリームの内容をファイルに保存する
SaveToFile ストリームの内容をファイルに保存する
SetEOS ストームの終わりの位置を設定する
SkipLine 1行全体をスキップする
Cancel 非同期メソッド呼び出しの内、保留中のものの実行をキャンセルする
CopyTo 指定したバイト数、または文字数のデータを他のStreamオブジェクトにコピーする
Flush ADOバッハファに保持されているStreamの内容を、関連づけられた元になるオブジェクトに反映する
State Streamオブジェクトに関する情報を取得する

実行結果 書き出されたファイル「4-48schema_sample.txt」