VisualFreeBasic游戏趣味编程_9.7_基于文件的关卡数据读取

2026-1-22 / 0 评论 / 44 阅读

FB语言提供了文件读写的功能,输入并运行以下代码:

Dim buffer As String, f As Integer
buffer = "一个文件中的Hello World。"
f = FreeFile
'打开文件“test.ext”进行二进制使用,使用文件号“f”。
Open "test.txt" For Binary As #f
If Err>0 Then Print "打开文件时出错":End
'将我们的字符串放在文件中,使用数字“f”。
Put #f, , buffer
'关闭所有打开的文件。
Close

其中,Open "file.ext" For Binary As #f以可写模式打开文本文件,"test.txt"为文件的名字, Put #f, , buffer 将字符串str存储到文件中,close 关闭文件。
通常我们使用封装的函数来读写文件,方便简单

Dim ss As String
ss = "文件测试"
SaveFileStr("test.txt", ss) '写入文件
ss = GetFileStr("test.txt") '读取文件

"test.txt" 文件会保存在和 软件文件夹下,但是,当有的软件修改了默认文件夹,那么就保存到其它文件夹里,通常,我们为了保证,一定保存在特点文件夹,必须指定文件夹,比方:App.Path ( 软件文件夹)

Dim ss As String
ss = "文件测试"
SaveFileStr(App.Path & "test.txt", ss) '写入文件
ss = GetFileStr(App.Path & "test.txt") '读取文件

新生成了一个test.txt文本文件,用记事本打开,内容如图9-8所示。

为了便于关卡数据的编辑与保存,新建文本文件level.txt并写入地图元素缩写字符,如图9-10所示。

以下代码就可以读取文本文件中的地图信息。

Dim ss As String
ss = GetFileStr(App.Path & "level.txt") '读取文件
Dim ee() As String
vbSplit(ss, vbcrlf, ee()) '分割字符串
Dim i As Long
for i = 0 to UBound(ee)  ‘把读取文件的数据,装载到 level 变量中
   If i >= B_NUM Then Exit For '预防地图数据错误,导致超过数组,把软件搞崩溃了
   level(i) = ee(i)
Next

提示

当直接运行编译成功的exe文件时,要读写的文件应和其放在同一个目录下。

评论一下?

OωO
取消