在QBasic中的用户定义的TYPE中使用数组

时间:2018-11-21 10:27:18

标签: arrays qbasic

我正在尝试学习QBasic,以便在Amstrad Alt-286上进行编程。在我的程序之一中,我使用了几种用户定义的类型,有时是TYPE数组。在其中一些中,我想声明一个像这样的数组:

TYPE TestType
    dataArray AS STRING * 4 'Since "dataArray AS _BYTE * 4" doesn't work (wrong syntax compiler says).
END TYPE

然后我这样声明我的类型:

DIM customType(2) AS TestType

一旦我想这样写我类型的dataArray:

customType(1).dataArray(2) = 3

编译器告诉我这是无效的语法。

然后,如何将数组存储在已定义的TYPE中? 以及如何使用它?

2 个答案:

答案 0 :(得分:2)

这里有两个问题。在QB64中,您根本无法将数组放在用户定义的类型内。根据QB64 Wiki的article on TYPE definitions

  

TYPE定义不能包含数组变量!可以将数组定义为TYPE定义。

此外,您的dataArray(声明为dataArray AS STRING * 4)根本没有声明数组,而是声明了4个字符串。这就是为什么当您尝试使用数组语法访问dataArray的元素时出现语法错误的原因。您可以声明自定义类型的数组组成,如下所示:

TYPE TestType
    dataElement AS _BYTE
END TYPE

DIM CustomType(4) AS TestType

CustomType(1).dataElement = 3

这声明了一个4个元素的TYPE TestType数组,每个元素包含一个TYPE _BYTE变量。这与您尝试要做的事情差不多。祝你好运!

答案 1 :(得分:0)

您想要的代码是这样的:

尽管您不能在QB1.1,QB4.5或QB64中执行此操作,但是可以在称为QB7.1(BC7 / PDS)和VBDOS(v1.00)的BASIC方言的超集中执行此操作: / p>

sed -i 's/(?<=ic-)(.*)(?=.js)/'"$timestamp.js"'/' src/views/partials/foot.view.php

否则,您可以像这样压缩变量:

TYPE testtype
    dataArray(4) AS INTEGER
END TYPE
DIM customtype(10) AS testtype
customtype(1).dataArray(2) = 3