○VB.netにて固定長ファイルを読み書き


    Dim sjis As System.Text.Encoding = System.Text.Encoding.GetEncoding("Shift-JIS")

    '固定長の構造体を宣言します。
    Structure DataCell
        <VBFixedArray(50 - 1)> Public a() As Byte
        <VBFixedArray(11 - 1)> Public b() As Byte
        <VBFixedArray(11 - 1)> Public c() As Byte
        <VBFixedArray(50 - 1)> Public d() As Byte
        <VBFixedArray(11 - 1)> Public e() As Byte
        <VBFixedArray(2 - 1)> Public crlf() As Byte
    End Structure

    'レコードの読み込み
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim FileNum As Integer = FileSystem.FreeFile
        FileSystem.FileOpen(FileNum, "c:\test.txt", OpenMode.Random, , , Len(New DataCell()))

        Dim pos As DataCell

        '’レコード読み込み 先頭は1です。
        FileSystem.FileGet(FileNum, pos, 4)

        ''レコードを書き込み 先頭は1です。
        'FileSystem.FilePut(FileNum, pos, 3)

        FileSystem.FileClose(FileNum) 'ファイルを閉じる
        Debug.WriteLine(sjis.GetString(pos.a))
        Debug.WriteLine(sjis.GetString(pos.b))
        Debug.WriteLine(sjis.GetString(pos.c))
        Debug.WriteLine(sjis.GetString(pos.d))
        Debug.WriteLine(sjis.GetString(pos.e))

    End Sub

    'レコードの書き込み
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim FileNum As Integer = FileSystem.FreeFile
        FileSystem.FileOpen(FileNum, "c:\test.txt", OpenMode.Random, , , Len(New DataCell()))

        Dim pos As DataCell
        pos.a = sjis.GetBytes("今日は")
        pos.b = sjis.GetBytes("100")
        pos.c = sjis.GetBytes("200")
        pos.d = sjis.GetBytes("晴天なり")
        pos.e = sjis.GetBytes("300")
        pos.crlf = sjis.GetBytes(vbCrLf)

        '’レコード読み込み 先頭は1です。
        'FileSystem.FileGet(FileNum, pos, 4)

        ''レコードを書き込み 先頭は1です。
        FileSystem.FilePut(FileNum, pos, 5)

        FileSystem.FileClose(FileNum) 'ファイルを閉じる

    End Sub

    'レコードの総数を取得
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        Dim count As Integer = FileLen("c:\test.txt") / Len(New DataCell())
        Debug.WriteLine(count.ToString)
    End Sub



▲トップページ > Visual BASIC と C#