バイナリファイルを固定長読み込み、改行コードを付加して出力するには?


ベイルート  2007-06-07 06:35:47  No: 136634

■ 環境
OS:Win2k
WSH:VBScript

いつも拝見させていただいております。

■ 現状ステータス
バイナリファイルをADODB.Streamオブジェクトで固定長読み込みし
改行コードを付加して出力するVBSファイルを作成しています。

本サイトの過去ログを参考にプロトタイプを作成し
小さいサイズのバイナリファイルでは
期待結果を得ることに成功しました。

■ 質問
読み込むバイナリファイルのサイズが20GB のため
  - LoadFromFile メソッド でロード可能な限界ファイルサイズ
  - ADODB.Stream オブジェクトに保持可能な限界ストリームサイズ
  - SaveToFile メソッド で保存可能な限界ファイルサイズ
が気になっています。

上記3つの限界サイズについて
ネットで検索いたしましたがヒットしませんでしたので
どなたかご存知の方おられましたらご教授願いたく。

また上記3つの限界サイズが設定されていた場合
代替メソッド,代替ロジックとして、どのようなものがあるのかも
ご教授いただければ幸いです。

宜しく御願いいたします。

■ ソース(抜粋)
Const cintReadRecLen = 507 '読込固定レコード長

   Dim objInStream
   Dim objOutStream
   Dim bytData
   Dim bytCrLf

   Set objInStream = CreateObject("ADODB.Stream")
   objInStream.Open
   objInStream.Type = adTypeBinary
   objInStream.LoadFromFile(strFilePath)

   If Err.Number=0 Then
      '出力用ストリームのオープン
      Set objOutStream = CreateObject("ADODB.Stream")
      objOutStream.Open
      objOutStream.Type = adTypeBinary

      Do Until objInStream.EOS

         '入力ファイルの内容を固定バイト取り出し
         bytData = objInStream.Read(cintReadRecLen)

         '読み込んだ内容+改行コードを出力用ストリームへ書出
         objOutStream.Write(bytData)
         objOutStream.Write(bytCrLf)

      Loop

      '出力ファイルへ出力用ストリームを書出
      objOutStream.SaveToFile strFilePath & ".out", 2
      objOutStream.Flush
      objOutStream.Close
   end if


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加