資料讀寫:Open、Close與FreeFile
●先來談談FreeFile,當我們開啟一個檔案時,程式必需要將開啟的檔案資訊放入檔案緩衝記憶體裡,這個緩衝記憶體我們以編號來表示。
●於VB裡,我們要開啟一個檔案時,可以任意指定一個編號的檔案緩衝剌使用,開啟另一個檔案時,可以隨意再開啟一個檔案編號檔案緩衝來使用,但不同的檔案在未關閉時,不得使用相同的檔案緩衝來處理,因你的檔案處理是跨越許多副程式且檔案緩衝編號都是隨意給定時,想再開啟一個檔案緩衝來處理檔案時可能會發生混亂以造成執行上的錯誤,為了避免檔案緩衝重覆開啟的錯誤產生,我們要借用FreeFile函數來解決,FreeFile會傳回目前第空著的檔案緩衝編號。
動作 | VB6裡空著的檔案編號 |
---|---|
無任何檔案被開啟 | 1,2,3,.......,510,511,512 |
Print FreeFile FreeFile傳回 1 |
1,2,3,.......,510,511,512 |
Open File1 For XXX As #1 | 2,3,.......,510,511,512 |
Print FreeFile FreeFile傳回 2 |
2,3,4,.......,510,511,512 |
Open File2 For XXX As #2 | 3,4,5,.......,510,511,512 |
Print FreeFile FreeFile傳回 3 |
3,4,5,.......,510,511,512 |
無任何檔案被開啟 | 1,2,3,.......,510,511,512 |
Print FreeFile FreeFile傳回 1 |
1,2,3,.......,510,511,512 |
Open File1 For XXX As #3 | 1,2,4,.......,510,511,512 |
Print FreeFile FreeFile傳回 1 |
1,2,4,.......,510,511,512 |
Open File2 For XXX As #5 | 1,2,4,6,.......,510,511,512 |
Print FreeFile 1仍是第一個空著的檔案緩衝,FreeFile還是傳回 1 |
1,2,4,6,.......,510,511,512 |
Open File3 For XXX As #1 | 2,4,6,.......,510,511,512 |
Print FreeFile FreeFile傳回 2 |
2,4,6,.......,510,511,512 |
●每一個檔案只能用一個檔案緩衝來存取資料,不同的檔案不可以用同一個檔案緩衝來存取資料。
●Open:開啟一個檔案,Open 檔名 For 存取模式 As #FreeFile ......
Private Sub Command1_Click()
Open "C:\Test\Plus\Customer.dat" For Input As #1
Open "C:\Test\Plus\Served.dat" For Output As #2
F = FreeFile
Open "C:\Windows\Temp\~w4a30gh.tmp" For Binary As #F Len = Len(MyStruct)
End Sub
Open "C:\Test\Plus\Customer.dat" For Input As #1
Open "C:\Test\Plus\Served.dat" For Output As #2
F = FreeFile
Open "C:\Windows\Temp\~w4a30gh.tmp" For Binary As #F Len = Len(MyStruct)
End Sub
存取總類 | 說明 |
---|---|
Append | 將資料新增至檔案的最後一筆。 |
Output | 將資料重新寫入檔案。 |
Input | 將資料由檔案裡讀出來。 |
Binary | 使用二進數資料來存取檔案。 |
●Close:將開啟的檔案關閉,將檔案緩衝歸還(釋放)。
Private Sub Command1_Click()
Open "C:\Test\Plus\Customer.dat" For Input As #1
Open "C:\Test\Plus\Served.dat" For Output As #2
F = FreeFile '此時為3
Open "C:\Windows\Temp\~w4a30gh.tmp" For Binary As #F Len = LenB(MyStruct)
Close #3
Close #2
Close #1
End Sub
Open "C:\Test\Plus\Customer.dat" For Input As #1
Open "C:\Test\Plus\Served.dat" For Output As #2
F = FreeFile '此時為3
Open "C:\Windows\Temp\~w4a30gh.tmp" For Binary As #F Len = LenB(MyStruct)
Close #3
Close #2
Close #1
End Sub
-----------------------------------------------------------
佛对我说:你心里有尘。我用力的拭擦。