使用文件操作打开磁盘文件进行读取或写入
语法
Open filename  For Input [encoding_type ] [lock_type ] As [#]filenumber 
Open filename  For Output [encoding_type ] [lock_type ] As [#]filenumber 
Open filename  For Append [encoding_type ] [lock_type ] As [#]filenumber 
Open filename  For Binary [access_type ] [lock_type ] As [#]filenumber 
Open filename  For Random [access_type ] [lock_type ] As [#]filenumber  [Len = record_length ]
用法
result  = Open (filename , For {Input|Output|Append}, As filenumber  )
or 
result  = Open (filename , For Binary, Access {Read|Write}, As filenumber  )
or 
result  = Open (filename , For Random, Access {Read|Write}, As filenumber  [, Len =  record_length ] )
or 
Open filename  For {Input|Output|Append} As filenumber 
or 
Open filename  For Binary Access {Read|Write} As filenumber 
or 
Open filename  For Random Access {Read|Write} As filenumber  [Len =  record_length ]
参数
filename 
要打开的磁盘文件的名称的字符串值。相对文件路径是相对于当前目录(参见
CurDir)。
读取或写入文本时使用的编码可以是以下之一:
- Encoding "ascii" (ASCII encoding is used, default) 
 
- Encoding "utf8" (8-bit Unicode encoding is used) 
 
- Encoding "utf16" (16-bit Unicode encoding is used) 
 
- Encoding "utf32" (32-bit Unicode encoding  is used) 
 
access_type调用进程请求的访问类型。
- Access [Read] [Write] (both read and write access can be used, which is the default) 
 
lock_type对其他进程(线程或程序)的磁盘文件访问进行限制,可以是:
- Shared (the file can be freely accessed by other processes) 
 
- Lock [Read] [Write] (both read and write access can be denied to other processes) 
 
filenum 
record_length从磁盘文件读取或写入的每个记录的大小(以字节为单位)。默认值为128.
 返回值
在第一次使用中,Open在成功时返回零(0),否则返回非零错误代码。
说明
例子
'创建一个字符串并填充它。
Dim buffer As String, f As Integer
buffer = "一个文件中的Hello World。"
'找到第一个免费的文件号。
f = FreeFile
'打开文件“file.ext”进行二进制使用,使用文件号“f”。
Open "file.ext" For Binary As #f
If Err>0 Then Print "打开文件时出错":End
'将我们的字符串放在文件中,使用数字“f”。
Put #f, , buffer
'关闭所有打开的文件。
Close
'结束程序。(运行时查看文件“file.ext”查看输出。)
End
'OPEN A COM PORT
Open Com "COM1:9600,N,8,1" As #1
If Err>0 Then Print "端口无法打开。"
'COM1, 9600 BAUD, NO PARITY BIT, EIGHT DATA BITS, ONE STOP BIT
'功能版OPEN
If Open("file.ext" For Binary Access Read As #1) = 0 Then
    Print "成功打开文件"
    ''...
    Close #1
Else
    Print "打开文件时出错"
End If
 平台差异
- Linux需要filename 与文件的真实名称匹配。Windows和DOS不区分大小写。
 
- Linux中的路径分隔符是正斜杠/ .Windows使用反斜杠\\ ,但允许正斜杠/ .DOS使用反斜杠\\ .
 
- 在Windows上,动态链接库中使用的文件号与主程序中使用的文件号不同。文件编号不能传递或返回,然后在DLL和可执行文件之间使用。
 
- 如果您尝试在Linux上打开一个目录,打开命令将成功。
 
 
 与QB差别
方言差异
- -lang qb 方言支持旧的GW-BASIC风格的语法OPEN mode_string,#filenum,filename [length],mode_string为“I”输入,“O “输出,”A“附加,”R“为随机,”B“为二进制。
 
 
 参考