Lotusscript中的文件操作

 

1Sequential files

一般是文本文件,存儲字符、ASCII控制字符。

 

【打開】

Open fileName [For {Input | Output | Append} ] As fileNumber [Len = bufferSize] [Charset = MIMECharsetName]

 

【寫入】

Var1 = "123"

Var2 = 123

Print #idFile, Var1, Var2

Var1Var2的內容寫入序號爲idFile的文件中。Var1Var2間將以tab間隔。文件內容:123

123

Write #idFile, "Testing", 123

作用同上,但是寫入後,字符串兩邊將加入引號。Var1Var2間將以逗號間隔。文件內容:"123",123

Note True, False, and NULL are stored as strings #True#, #False#, and #NULL#.

 

【讀取】

Line Input # 讀取一行

Do Until EOF(idFile)

Line Input #idFile, iLine

Print iLine

Loop

Input # 讀取使用Write #方法寫入的數據

Input #idFile, Var1, Var2 '可將文件內容讀入Var1Var2變量中。

Input 讀取整個文件內容。Input返回VariantInput$返回字符串。

' LOF returns the length of the file in characters.

Dim fulFile As String

fulFile = Input$(LOF(idFile), idFile)

 

 

 

2Random files

存儲長度相同的記錄。記錄可以爲 Integer or String, or to a user-defined type

 

【打開】

Open fileName For Random As fileNumber [Len = recordLength]

where recordLength is the length of each record in the file. The default length is 128 bytes.

Dim recLen As Integer, idFile As Integer

Dim recHold As emploRec

idFile = 1 ' The file number to use for

' this file

recLen = Len(recHold) ' The record length for this file

Open "DATA.DAT" For Random As idFile Len = recLen

 

【寫入】

Put 新增或替換文件內記錄。使用已有記錄序號時爲替換,使用任何大於已有序號時爲新增。

Dim recNum As Integer

recNum = 5

' Replace record 5 with the contents of recHold.

Put idFile, recNum, recHold

 

【讀取】

Get 將指定文件中指定序號的記錄讀取如指定變量中。

' The record number to retrieve from the file

Dim recNum As Integer

recNum = 5

' The variable to read into

Dim recHold As emploRec

Get idFile, recNum, recHold

 

 

3Binary files

二進制文件。

 

【打開】

Open fileName For Binary As fileNumber

 

【寫入】

Put fileNumber, bytePosition, variableName

bytePosition 文件中開始寫入的位置。文件中第一byte對應的是position 1

 

【讀取】

Get fileNumber, bytePosition, variableName Put對應

Dim tempRec As emploRec

For I = recNum To lastRec - 1

Get idFile, I + 1, tempRec

Put idFile, I, tempRec

Next I

Seek [#] fileNumber, position 設置文件位置(Binary file中的字節位置或者Random file中的記錄位置)。

Type personRecord

empNumber As Integer

empName As String * 20

End Type

Dim rec1 As personRecord, rec2 As personRecord

Dim fileNum As Integer, recNum As Integer

Dim fileName As String

fileNum% = FreeFile()

fileName$ = "data.txt"

recNum% = 5

Open fileName$ For Random As fileNum% Len = Len(rec1)

rec1.empNumber% = 123

rec1.empName$ = "John Smith"

Print Seek(fileNum%)

 

' Prints 1 for current position

Put #fileNum%, recNum%, rec1  ' Write data at record 5

Print Seek(fileNum%)

 

' Prints 6

Seek fileNum%, 1

 

' Rewind to record 1

Print Seek(fileNum%)

 

' Prints 1

Rec2.empNumber% = 456

Rec2.empName$ = "Jane Doe"

Put #fileNum%, , rec2

 

' Write at current position

Print Seek(fileNum%)

 

' Prints 2

Close fileNum%

dataHold = Input (numBytes, fileNumber) 從文件中讀取numBytes字節數據至dataHold變量。若使用Input$,則返回值爲String

 

【總結】

 

【打開】

fileNumber% = FreeFile

Open fileName$ [ For {Input | Output | Append | Binary | Random }]

[ Access {Read | Read Write | Write}]

[ {Shared | Lock Read | Lock Read Write | Lock Write }]]

As fileNumber%

[ Len = recLen%]

[Charset = MIMECharsetName]

 

【關閉】

Close [ [ # ] fileNumber [ , [ # ] fileNumber ] ... ]

文件使用後必須關閉,否則不能被再次打開。改變文件打開屬性(只讀|可寫)必須重新打開文件。

發佈了24 篇原創文章 · 獲贊 1 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章