Back to Top

プログラムの覚書

Category: ファイル

VB.NET 固定長ファイルの読み込み・書き込み

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

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

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)

 

VB.NET ファイル名を変更する

ファイル名の変更(リネーム)をする方法を記載します。

ファイルの移動で場所を変更しなければ、リネームとなりますので、ファイルの移動と同じことになります。

File.Moveメソッドを使用する方法

System.IO.File.Move("C:\work\myfile.txt", "C:\work\myfile.bak")

 

 

FileInfo クラスを使用する方法

Dim finfo As New System.IO.FileInfo("C:\work\myfile.txt")
finfo.MoveTo("C:\work\myfile.bak")