OPEN
来源: https://www.freebasic.net/wiki/wikka.php?wakka=KeyPgOpen 最后更新: 2018-03-12
打开磁盘文件以使用文件操作进行读取或写入。
语法
Open filename For Input [Encoding "type"] [Lock {Shared|Read|Write}] As [#]filenumber
Open filename For Output [Encoding "type"] [Lock {Shared|Read|Write}] As [#]filenumber
Open filename For Append [Encoding "type"] [Lock {Shared|Read|Write}] As [#]filenumber
Open filename For Binary [Access {Read|Write}] [Lock {Shared|Read|Write}] As [#]filenumber
Open filename For Random [Access {Read|Write}] [Lock {Shared|Read|Write}] As [#]filenumber [Len = record_length]函数形式:
result = Open( filename For {Input|Output|Append} As filenumber )
result = Open( filename For Binary Access {Read|Write} As filenumber )
result = Open( filename For Random Access {Read|Write} As filenumber [Len = record_length] )参数
- filename — 要打开的磁盘文件名。相对路径相对于当前目录。
- encoding_type —
"ascii"(默认)、"utf8"、"utf16"或"utf32"。 - access_type —
Access [Read] [Write](默认为两者)。 - lock_type —
Shared或Lock [Read] [Write]。 - filenumber — 可用的文件编号(使用
FreeFile获取)。 - record_length — 每条记录的字节大小(Random 模式,默认 128)。
返回值
在函数形式用法中,返回 32 位 Long:成功时为零(0),否则为非零错误代码。
说明
打开磁盘文件进行读取和/或写入。
顺序模式(Input、Output、Append):
- Input — 只读。文件必须存在。
- Output — 只写。现有文件内容将被删除。
- Append — 只写。写入发生在文件末尾。
随机访问模式(Binary、Random):
- Binary — 使用
Get #/Put #进行原始字节的读/写。 - Random — 类似 Binary,但使用固定大小的记录(
Len = record_length)。
锁定类型控制来自其他进程的访问。
示例
示例1:向二进制文件写入
vb
Dim buffer As String, f As Integer
buffer = "Hello World within a file."
f = FreeFile
Open "file.ext" For Binary As #f
If Err > 0 Then Print "Error opening the file" : End
Put #f, , buffer
Close
End示例2:打开 COM 端口
vb
Open Com "COM1:9600,N,8,1" As #1
If Err > 0 Then Print "The port could not be opened."示例3:使用错误检查的函数版本
vb
If Open("file.ext" For Binary Access Read As #1) = 0 Then
Print "Successfully opened file"
Close #1
Else
Print "Error opening file"
End If平台差异
- Linux: 文件名大小写必须匹配。路径分隔符为
/。 - Windows/DOS: 不区分大小写。路径分隔符为
\(Windows 也允许/)。 - Windows: DLL 中的文件编号与主可执行文件中的不同。
- Linux: 打开目录将成功。
与QB的区别
- MS-DOS 设备名称(如
"LPT:")仅在-lang qb方言中受支持。 Open可以作为返回错误代码的函数调用。