一、開啟檔案
語法:
Open pathname For mode[Access accmode] [lock] As [#]filenumber [Len=reclength]
Open 陳述式語法單元
單元 | 說明 |
---|---|
pathname | 可以為一個字串運算式,代表欲開啟的檔案或裝置,若檔案不在目前資料夾下,須在檔名前加上路徑名稱。 |
mode | 用來設定使用那類的資料檔及存取模式。 |
accmode | 選擇性引數。它是個關鍵字,用來指定所開啟的檔案可被允許的動作:有 Read、Write、或 Read Write 等。 |
lock | 選擇性引數。它是個關鍵字,用來指出其它處理程序對於本開啟的檔案可被限制的動作:有 Shared、Lock Read、Lock Write、和 Lock Read Write等。 |
filenumber | 資料檔開啟後便賦予一個檔案代碼,其值為1~511。一個檔案被開啟後,所有檔案的處理都是用代碼來代表該檔案,其值為整數。 |
reclength | 選擇性引數。記錄長度使用於隨機檔,用來設定每一筆記錄的長度,以Byte為單位,其值為1~32767。若輸入一筆資料的長度小於所設定記錄長度則資料無法存放,會出現錯誤訊息。 |
Mode
檔案結構 | 模式 | 說明 |
---|---|---|
循序存取檔 | Output | 將主記憶體的資料寫入磁碟中。若磁碟中已有此檔案,則該檔案的 資料全被刪除變成一個空檔,該檔若不存在,則建立一個新的檔案。 |
Input | 由磁碟中讀取檔案的資料存入主記憶體中,由開頭讀取,若磁碟中無此檔名,會有錯誤訊息。 | |
Append | 由主記憶體將資料寫入磁碟中,若磁碟中有此檔名,則新的資料加在檔案最後面。若不存在,則建一個新的的檔案。 | |
隨機存取檔 | Random | 可由磁碟中讀取或寫入資料。若省略模式,則內定式為隨機檔。 |
二進位檔 |
Binary | 以Byte為單位,可以在檔案中任一位置做讀寫。 |
- 您在對檔案做任何 I/O 動作之前,必須先開啟它。Open 陳述式會配置一個暫存區以供檔案做 I/O 時使用,並且會決定此暫存區所使用的存取模式。
- 如果由引數 pathname 所指定的檔案不存在,但是其指定的檔案開啟模式為 Append、Binary、Output、或 Random 的話,Open 陳述式仍會依照此檔名產生一個檔案。
- 如果所指定的檔案已由其它程序所開啟,且所指定的存取型態是不被允許的話,則 Open 動作會失敗,而且會有錯誤發生。
- 如果引數 mode 是 Binary 模式,則 Len 子句會被忽略掉。
- 在 Binary、Input 和 Random 等模式下,您可以使用不同的檔案代碼去開啟同一個檔案,而不必先將檔案關閉。但在 Append 和 Output 模式下,若要以不同的檔案代碼去開啟同一個檔案,則您必須在開啟前先關閉該檔案。
Ex.
以循序存取模式開啟 c:\mytext.txt 檔
Open "c:\mytext.txt" For Input As #1
以二進位檔模式輸出 c:\mydat.dat 檔
Open "c:\mydat.dat" For Binary Access Write As #1
以隨機存取檔開啟檔案
Type Record
ID As Integer
Name As String * 20
End Type
Dim MyRecord As Record
Open "c:\address.txt" For Random As #1 Len = Len(MyRecord)
二、關閉檔案
語法:
Close [[#] filenumber1,[#] filenumber 2,...]
- 若省略代碼,會將所有已開啟的資料檔關閉。
- 任何已開啟的檔案,不再使用時,要記得關閉,如此才能將佔用的緩衝區歸還系統。
- 以Output或Append開啟的檔案,使用Close敘述會將存放在緩衝區內的資料寫入檔案中,再將資料檔關閉。
三、相關檔案函數
語法:LOF(filenumber)
功能:將檔案代碼所對應資料檔的長度傳回,使用本函數之前,必須先用Open敘述將該資料檔打開方有效。
語法:FileLen(pathname)
功能:將指定資料檔的長度傳回,本函數對尚未使用Open敘述打開的資料檔有效。
語法:EOF(filenumber)
功能:用來測試檔案是否結束。
語法:FreeFile
功能:自動取得一個有效的檔案代碼。
全站熱搜
留言列表