如果变量为点型,用户仍可使用 .X、.Y、.Z、.I、.J 及 .K 扩展名来获取点的各项。用户也可在结构中使用本例的任何一种扩展名,而不必强制将它们作为点元素使用。
ASSIGN/V1.X="Some string"
ASSIGN/V1.Y=ARRAY(1,3,5,9,7)
ASSIGN/V1.Z=MPOINT(3,5,7)
COMMENT/REPT,V1.X |
输出为“Some string” |
COMMENT/REPT,V1.Y[2] |
输出为3,数组的第二个元素。 |
COMMENT/REPT,V1.Z.Y |
输出为 5,即 MPOINT 的 Y 值。 |
通过将结构与 PC-DMIS 表达式语言的函数功能组合使用,可以获得动态结构引用,如下所示:
ASSIGN/DYNAMICSTRUCT=FUNCTION((X,Y),X.Y)
C1=COMMENT/INPUT,Please enter in item
ASSIGN/TESTSTR=C1.INPUT
ASSIGN/FRONT=LEFT(TESTSTR,INDEX(TESTSTR,".")-1)
ASSIGN/BACK=MID(TESTSTR,INDEX(TESTSTR,"."))
ASSIGN/RESULT=DYNAMICSTRUCT(FRONT,BACK)
示例的这一部分要求您输入一个变量参考,并在第一个 "." 处分解参考,然后运用函数 DYNAMICSTRUCT 将 RESULT 赋值为与该参照相等。
因此,若为变量 C1.INPUT 键入 V1.Y[4],RESULT 将为 9(数组的第四个元素被赋值给 V1.Y)。
表达式的学习时间评估已增强,可以准确显示结构或数组的所有元素。