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

时间:2016-11-02 22:19:57

标签: qbasic

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

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

TYPE Person
    name AS STRING * 4
END TYPE

DIM Matheus AS Person:
Matheus.name = "Matheus":

PRINT Matheus.name:

记录"数学",预期" Matheus"。有没有办法允许这个字符串的任何范围?

注意:我使用的是QB64编译器

1 个答案:

答案 0 :(得分:2)

不,即使使用QB64,也无法使用可变长度字符串。如果您需要此功能,可以查看FreeBASIC,因为它提供了它。

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

OPEN Filename$ FOR RANDOM AS #1 [LEN = recordlength%]
     
      
  • recordlength%取决于获取LEN变量的TYPEFIELD声明。
  •   
  • 如果OPEN语句中没有使用记录长度,则默认记录大小为128字节,但最后一条记录除外。
  •   
  • 记录长度不能超过32767或发生错误!
  •   

TYPE从未打算包含动态大小的字符串。这允许开发人员保持较小的记录大小。例如,如果您有地址簿,那么您不希望人们的姓名过大,否则地址簿就不适合记忆。

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

相关问题