固定長ファイル(ランダムファイル)の読み込み、書き込みについて説明します。
固定長ファイルは、データがテキスト形式とは限りません。バイナリー形式もあります。
VBでは、FileSystem クラスを使用することにより、簡単に固定長ファイルのアクセスが出来ます。
・System.Runtime.InteropServicesをインポートします。
FileSystem クラスを使用して、固定長ファイルの読み書きをする
固定長ファイルの構造体
1 2 3 4 5 |
<StructLayout(LayoutKind.Sequential, Pack:=1)> Friend Structure Person <VBFixedArray(10 - 1)> Public Name() As Byte <VBFixedArray(5 - 1)> Public Age() As Byte End Structure |
ランダムファイルの読み書き
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
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) |