Visual Basic 文件操作

打开文件

OPEN pathname FOR mode [ACCESS access] [lock] AS #filenumber [LEN = reclength]
mode 打开模式,仅 Input 时文件必须存在,否则其他自动建立文件
Append、Binary、Input、Output 和 Random
access 读写方式,有:
Read、Write、Read Write
lock 锁定方式,有:
Shared、Lock Read、Lock Write 和 Lock Read Write
filenumber 文件号,1-511 之间
reclength 记录长度,用于 Random 方式

关闭文件

CLOSE #filenumber

文本输入输出

存储 PRINT #filenumber, [{Spc(n) | Tab[(n)]}] [expression] [charpos]
读出 LINE INPUT #filenumber, variable / string

GET #filename,[recnumber],variable

Spc(n) n 个空格
Tab 下个区域(14 X 列)
Tab(n) 插空格直到第 n 列
expression 欲输出的表达式
charpos 指示与下一次的输出的关系
分号 紧接
逗号 / TAB 隔一个制表符
TAB(n) 到第 n 列上
转到下一行

二进制输入输出

存储 PUT #filenumber,[size],data
读出 dim data(100) as char '读入100字符
GET #filenumber, , data

带分隔符输入输出

多个变量之间自动插入分隔符(逗号),字符串加引号,最后换行。

输出 WRITE #filenumber, 变量列表
读入 INPUT #filename, 变量列表

文件函数

文件函数 意义
FileLen(pathname) 返回文件长度
LOF(filenumber) 返回文件长度

示例:读取二进制文件全部内容

Dim data() As Byte
Dim length As Long

length = FileLen("filename.ext")
Open FN For Binary Access Read As #1
ReDim data(length)
Get #1, ,data   // 读取数据到数组 data 中
Close #1

示例:写二进制内容到文件

Dim data() As Byte
Dim length As Long

length = rec.Fields("内容").ActualSize
ReDim data(length)
data = rec.Fields("内容").GetChunk(length)
Open "filename.ext" For Binary Access Write As #1
Put #1, , data
Close #1