資料讀寫: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
 

存取總類 說明
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
 

 

 

posted on 2009-04-23 09:28  炜升  阅读(455)  评论(0编辑  收藏  举报