我通常在我们的商店使用BASICTYPE'P'但是有机会在项目中使用'U',并注意到我无法在属性标记分隔的动态数组上进行定位。
引用文档时,它明确指出在类型U中,不指定属性表达式是语法错误。这对我来说似乎是一个巨大的疏忽。
如果不借助for循环搜索这些项目,如何做到这一点?
答案 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