我正在尝试学习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中? 以及如何使用它?
答案 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