你如何使用BASICTYPE'U'为@ AM的位置在Unidata中找到位置?

时间:2010-12-06 14:57:39

标签: u2 unidata

我通常在我们的商店使用BASICTYPE'P'但是有机会在项目中使用'U',并注意到我无法在属性标记分隔的动态数组上进行定位。

引用文档时,它明确指出在类型U中,不指定属性表达式是语法错误。这对我来说似乎是一个巨大的疏忽。

如果不借助for循环搜索这些项目,如何做到这一点?

3 个答案:

答案 0 :(得分:2)

如果您的数组由属性标记分隔,则只需使用以下语法进行定位:

LOCATE expression IN array_name SETTING position_var THEN | ELSE ...

在值标记分隔的数组中找到它会有点棘手:

LOCATE expression IN array_name<1> SETTING position_var THEN | ELSE ...

答案 1 :(得分:0)

LOCATE语句有两种形式

在yyy设置zzz然后aaa else bbb中采用定位xxx的形式 和另外一个 找到(xxx; yyy; zzz)然后找到aaa else bbb

答案 2 :(得分:0)

在BASICTYPE'U'中,您可以使用FIND语句。

从手册:

<强>语法
FIND expr IN dyn.array[,occur] SETTING f [,v[,s]] {THEN statements | ELSE statements}

<强>描述
UniBasic FIND命令确定给定表达式在a中的位置 动态数组。 FIND返回找到的属性,值和子值位置 串。表达式必须与整个数组元素匹配才能生成matc