我有以下 QuickBasic 4.5 代码:
IF LEN(Dir$("mtn.vga")) > 0 THEN
BLOAD "mtn.vga", VARPTR(mtn(1))
我正在尝试将其移植到 FreeBasic 但收到错误:
数组未标注,在 '(' 之前
如果 LEN(Dir("mtn.vga")) > 0 那么
^
有任何想法吗?
该特定行是完全有效的 FreeBASIC 代码(即使您在 Dir() 之后保留美元符号也可以使用)。我运行这个测试代码只是为了确保它可以正常工作:
IF LEN(DIR("sa.bas")) > 0 THEN 'sa.bas is the name of this file
PRINT "file exists"
END IF
你介意放一大块代码吗(也许在pastebin上并链接我)?问题的原因可能就在您的代码中的某个位置。
在 FreeBASIC 中,不推荐使用字符串变量后的 $ 仅当您想用于与旧 BASIC 兼容的程序时才有用
按照示例程序了解 DIR() 的作用
'This example show you how work if want verify the exist file.
Print DIR("lendir.bas") ' Dir("namefile.ext") show the name of file if exist
IF LEN(DIR("lendir.bas")) > 0 THEN 'sa.bas is the name of this file
PRINT "file exists"
END IF
'or you can use this too
IF DIR("lendir.bas") = "" THEN 'If file not exist
PRINT "file not exists"
Else
PRINT "file exist"
END IF
BLOAD 从使用 BSave 创建的文件或兼容的 BMP 图像文件中加载任意数据。
但是你必须确定原始代码是 QB 还是 QuickBASIC 因为有不同的方式来获取相同的东西
示例fbc myprog.bas -lang qb
不适用于此示例尝试 fblite 而不是 qb