如何在QBasic中声明用户定义类型中的任意范围字符串元素



我正在学习QBasic,并在文档中找到了一个用户定义类型的示例代码。在本例中,用户定义类型中有一个string元素,该字符串没有定义长度。

然而,我的编译器抛出异常"Expected STRING * on…"对于这个例子。测试用例定义字符串长度:

TYPE Person
    name AS STRING * 4
END TYPE
DIM Matheus AS Person:
Matheus.name = "Matheus":
PRINT Matheus.name:

它记录"Math",期望"Matheus"。有没有一种方法允许这个字符串有任何范围?

注意:我使用QB64编译器

不,没有办法使用变长字符串,即使是QB64。如果你想要这个功能,你可以看看FreeBASIC,因为它提供了这个功能。

TYPE创建具有指定字段的记录类型,并且记录具有固定长度。查看OPEN ... FOR RANDOM规范:

OPEN Filename$ FOR RANDOM AS #1 [LEN = recordlength%]
  • recordlength%通过获取TYPE变量或FIELD语句的LEN来确定。
  • 如果OPEN语句中没有指定记录长度,则除最后一条记录外,默认记录长度为128字节。
  • 记录长度不能超过32767,否则会出现错误!

TYPE从未打算包含动态大小的字符串。这允许开发人员保持较小的记录大小。例如,如果你有一个地址簿,你不会希望人们的名字太大,否则地址簿将无法容纳内存。

QB64并没有删除这个限制,可能是为了保持与旧的QBASIC代码的兼容性,因为最初的目标是保持兼容性。

相关内容

  • 没有找到相关文章

最新更新