固定長ファイル(ランダムファイル)の読み込み、書き込みについて説明します。

固定長ファイルは、データがテキスト形式とは限りません。バイナリー形式もあります。

VBでは、FileSystem クラスを使用することにより、簡単に固定長ファイルのアクセスが出来ます。

・System.Runtime.InteropServicesをインポートします。

 

FileSystem クラスを使用して、固定長ファイルの読み書きをする

固定長ファイルの構造体

<StructLayout(LayoutKind.Sequential, Pack:=1)>
Friend Structure Person
    <VBFixedArray(10 - 1)> Public Name() As Byte
    <VBFixedArray(5 - 1)> Public Age() As Byte
End Structure

ランダムファイルの読み書き

Dim FilePath As String = "C:\work\myrfile.txt"

'レコード長を取得する
Dim recordLen As Long = Len(New Person())

Dim pos As Person = New Person()

'ファイルをオープンする
Dim FileNo As Integer = FileSystem.FreeFile
FileSystem.FileOpen(FileNo, FilePath, OpenMode.Random, OpenAccess.ReadWrite, OpenShare.Default, recordLen)

'全レコード数を取得する
Dim recordMax As Long = FileSystem.LOF(FileNo) \ recordLen

'1レコード読み込む(先頭レコード)
FileSystem.FileGet(FileNo, pos, 1)

'1レコードを書き込む(最終レコードに追加)
FileSystem.FilePut(FileNo, pos, recordMax + 1)

'ファイルをクローズする
FileSystem.FileClose(FileNo)