Lotusscript中的文件操作

来源:互联网 发布:科研民工 知乎 编辑:程序博客网 时间:2024/04/30 23:46
 

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 ] ... ]

文件使用后必须关闭,否则不能被再次打开。改变文件打开属性(只读|可写)必须重新打开文件。

原创粉丝点击