バイナリデータとして読み書きする
                                                    玄関へお回り下さい。
テキストファイルをバイナリデータとして読み書きする   (120)
     Option Explicit

Private Sub Command1_Click()
'テキストファイルをバイナリデータとして読込表示する(その1)
  Dim bytArray() As Byte
  Dim intFileNo  As Integer
  Dim lngFileLenB As Long
  lngFileLenB = FileLen("sample1.txt")
  ReDim bytArray(lngFileLenB - 1)
  '使用可能なファイル番号を取得する
  intFileNo = FreeFile
  'ファイルをバイナリモードで開く
  Open "sample1.txt" For Binary As #intFileNo
  'バイナリデータとして読込んで
  Get #intFileNo, , bytArray
  Close #intFileNo
  'Unicodeに変換して表示
  Text1.Text = StrConv(bytArray, vbUnicode)
End Sub

Private Sub Command2_Click()
'テキストファイルをバイナリデータとして読込表示する(その2)
  Dim intFileNo As Integer
  '使用可能なファイル番号を取得する
  intFileNo = FreeFile
  'ファイルをシーケンシャル入力モードで開く
  Open "sample1.txt" For Input As #intFileNo
  'バイナリデータとして読込んでUnicodeに変換して表示
  Text1.Text = StrConv(InputB$(LOF(intFileNo), intFileNo), vbUnicode) 
  Close #intFileNo
End Sub


Private Sub Command3_Click()
'テキストファイルをバイナリモードで書込み
  Dim intFileNo As Integer
  intFileNo = FreeFile
  'ファイルをバイナリモードで開く
  Open "sample1.txt" For Binary Access Write As #intFileNo
    'テキストファイルを丸ごと書込み
    Put #intFileNo, , Text1.Text
  Close #intFileNo
End Sub

テキストボックスの内容を丸ごと保存・丸ごと読み込みする。ではシーケンシャルモードで丸ごと読み書きしていましたが、この方法では ”” で区切られてしまいますので、文中には ”” を使用出来ませんでしたが、バイナリモード読み書きする事によって表示された内容そのままを保存・読込でき、尚高速に読み書きができます。
又、指定バイト分読み込んだり、大きなファイルの最後の方だけ読み込んだりとか、工夫次第では使い道が色々あります。

※ バイナリファイルを読み込んだり、表示方法を16進数等で表記しているのでは無いのでお間違えないようにして下さい。




02/03/21