Skip to content

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_typeAccess [Read] [Write](默认为两者)。
  • lock_typeSharedLock [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 可以作为返回错误代码的函数调用。

参见

基于 FreeBASIC 官方文档翻译 如有侵权请联系我们删除
FreeBASIC 是开源项目,与微软公司无隶属关系