Rational Robot中提供了一個文件操作命令,語法如下:
Open filename$ [For mode] [Aclearcase/" target="_blank" >ccess access] [lock] As [#] filenumber% [Len = reclen]
這里我們把它的語法分為兩部分,因為這個文件操作命令有兩種文件操作模式,一種是順序文件,一種是隨機文件。
下邊是對順序文件操作的語法:
Open filename$ [??For [Input |Output |Append] As [#]filenumber [Len = buffersize]
參數說明:
說明:
?。?)參數filename$表示要打開的文件名,文件名可以包含有驅動器和目錄
?。?)Input Output 和Append用于設置順序文件的打開方式。其中,Input表示從打開的文件中讀取數據。以這種方式打開文件時,文件必須存在,否則會產生錯誤。 Output表示向打開的文件中寫入數據。以這種方式打開文件時,文件中原有的數據將被覆蓋,新的數據將從文件開始寫入。如果文件不存在,則創建一個新文件。Append表示向打開的文件中添加數據。以這種方式打開時,文件中原有的數據將被保留,新的數據將從文件為開始添加。如果文件不存在,則創建一個新文件。
?。?)As[#]filenumber 子句用于為打開的文件指定文件號.對文件進行讀寫操作時,要用文件號表示該文件.文件號是介于1~511之間的整數,既可以是數字,又可以是變量.也可以省略不用.
(4)當在文件與程序之間拷貝數據時,Len=buffersize子句指定緩沖區的字符數.
例子:
Open “c:\test.dat" For Output As 1
Open “c:\test.dat" For Output As 1
這兩句代碼在c盤所在目錄下創建了一個名為test.dat的文本文件,分配文件號為1.
Open “c:\test.dat"??For Input As [#]filenumber 這條語句是從文本文件中讀取數據.
Open App.Path + "\test.dat" For Append As [#]filenumber?? 這條語句則是向文本文件中添加數據
隨機文件的操作:
操作隨機文件之前,首先必須定義用于保存數據項的記錄類型.該記錄是用戶自定義數據類型,他們是隨機文件中存儲數據的基本結構.例如:
Type Student
No As Integer
Name As String * 20
age As Integer
End Type
Dim Stud As Student ‘定義一個可以存放學生材料的變量
隨機文件中,所有的數據都將保存到若干個結構為Student類型的記錄中, 而從隨機文件中讀出的數據則可以存放到變量Stud中.之后我們就可以打開并讀寫文件了.
隨機文件的操作語法格式:
Open filename For Random as [#]filenumber Len = Reclength
說明:
(1)參數filename 和filenumber 分別表示文件名或文件號.
(2)關鍵字Random 表示打開的是隨機文件
(3)Len子句用于設置記錄長度,長度由參數Reclength指定.Reclength的值必須大于0,而且必須與定義的記錄結構的長度一致.計算記錄長度的方法是將記錄結構中每個元素的長度相加.例如前面聲明的Student的長度應該是2+20+2=24字節.
打開一個記錄類型為Student 的隨機文件的方法是:
Open "c:\Student.txt " For Random As #1 Len = 25
這里還有一種文件操作方式二進制文件,下邊是他的語法格式:
Open pathname For Binary As [#]filenumber
說明:
(1) 參數filename 和filenumber 分別表示文件名或文件號.
(2)關鍵字Binary 表示打開的是二進制文件
(3)對于二進制文件,不能指定字節長度.每個打開的二進制文件都有一個自己的指針,文件指針是一個數字值,指向下一次讀寫操作的文件中的位置.二進制文件中的每個”位置”對應一個數據字節,因此,有n個字節的文件,就有1到n個位置.
我們可以用Seek()函數返回當前的文件指針位置(即下一個要讀寫的字節 );用Loc()函數返回上一次讀寫的字節位置,除非用Seek語句移動了指針,Loc()返回值總比Seek()的小1.我們來看下面的例子:
Open “路徑:\student.txt” for Binary as #1? ? 該語句用二進制的方式打開了student.txt文件.
原文轉自:http://www.anti-gravitydesign.com