方法一:使用fileOpen、fileGet、filePut、fileClose

 ‘先定義資料結構
 Structure RowOBS04
        Dim TDATE As String     ‘交易日期
        Dim ITEM_ID As String   ‘貨品代碼
        Dim KIND_ID As String   ‘品種代碼
        Dim ITEM_NAME As String ‘貨品名稱
        Dim KIND_NAME As String ‘品種名稱
        Dim ITEM_CAT As String  ‘產品分類
        Dim KIND_CAT As String  ‘品種分類
    End Structure

 sub GETDATA()
  Dim Cusdat As RowOBS04
        Dim fileNumber As Integer = FreeFile()

        FileOpen(fileNumber, fileName, OpenMode.Random)
        FileGet(fileNumber, Cusdat, CInt(TextBox1.Text))
        FileClose(fileNumber)
  
  TextBox2.Text = Cusdat.TDATE
        TextBox3.Text = Cusdat.ITEM_ID
        TextBox4.Text = Cusdat.KIND_ID
        TextBox5.Text = Cusdat.ITEM_NAME
        TextBox6.Text = Cusdat.KIND_NAME
        TextBox7.Text = Cusdat.ITEM_CAT
        TextBox8.Text = Cusdat.KIND_CAT
 end sub
 
 sub SETDATA()
  Dim Cusdat As RowOBS04
        Dim fileNumber As Integer = FreeFile()

        FileOpen(fileNumber, fileName, OpenMode.Random)

        ‘UPDATE資料
        Cusdat.TDATE = TextBox2.Text
        Cusdat.ITEM_ID = TextBox3.Text
        Cusdat.KIND_ID = TextBox4.Text
        Cusdat.ITEM_NAME = TextBox5.Text
        Cusdat.KIND_NAME = TextBox6.Text
        Cusdat.ITEM_CAT = TextBox7.Text
        Cusdat.KIND_CAT = TextBox8.Text
        FilePut(fileNumber, Cusdat, CInt(TextBox1.Text))
        FileClose(fileNumber)
 end sub

方法二:system.io.file

1.定義一筆RecordLen

2.計算位置=(筆數-1)*RecordLen

3.三種方式[適情況而定]
(1)索引條件為數字,且知道數字不大

==================
item_id | item_Name | kind
0070     
0071
  .
  .
  .
9999
====================
以上這種情況,可以用數字直接作索引條件,71塞到71的位置,73塞到73的位置,如72沒資料就留一筆RecordLen空白

(2)索引條件為數字,但數字大
建索引(也是一個文字檔)
no為item_id除某一質數的餘數
record_no為實際位置
==========================
[餘數出現重覆情況則放後面,如超過預計放置筆數,則用FLAG記錄之後從哪個NO開始]
no | item_id | record_no | item_id | record_no | item_id | record_no | flag
1  0000070 1     
2  0000071 2
 .
 .
 .
100  0071000     20000
 .
 .
 .
==========================

(3)索引條件不一定為數字
如出現字母,則可把字母排除,或把字母轉為數字來進行INDEX