0

我是 Clarion 编码的初学者,我正在处理可以描述为基本的问题。

我有这个代码: L_COUNTER1 = 2 LOOP IF INSTRING(L_COUNTER2& ';',L_STRING,1,L_COUNTER1 = 0 THEN
L_LIST[L_COUNTER2] = SUB(L_STRING,2,L_COUNTER1-3) L_STRING = SUB(L_STRING,L_COUNTER1,LEN(L_STRING) - L_COUNTER1 + 1) BREAK ELSE L_COUNTER1 = L_COUNTER + 1 END

变量 Counter1 是外循环的一部分。这段代码为我生成了这样的数据

L_LIST[1]='test1'
L_LIST[2]='test2'
L_LIST[3]=''(empty)
L_LIST[4]=''(empty)
L_LIST[5]=''(empty)
L_LIST[6]='test3'
L_LIST[7]=''(empty)
L_LIST[8]=''(empty)
L_LIST[9]=''(empty)

我正在努力实现:

L_LIST[1]='test1'
L_LIST[2]='test2'
L_LIST[3]='test3'

或者至少

L_LIST[1]='test1'
L_LIST[2]='test2'
L_LIST[3]='test3'
L_LIST[4]=''(empty)
L_LIST[5]=''(empty)
L_LIST[6]=''(empty)
L_LIST[7]=''(empty)
L_LIST[8]=''(empty)
L_LIST[9]=''(empty)

但我被困在这个问题上。我尝试遍历元素并检查它们是否不等于空字符串但没有太大成功。

4

1 回答 1

0

测试内容应该类似于IF CLIP(L_STRING) > ''(检查字符串中的内容)或IF CLIP(L_STRING) = ''(检查空字符串)

解决方案的其余部分是为带维度的字符串变量 L_LIST 编写排序代码。或使用队列并使用SORT(queue,listfieldname)

除非我不理解这个问题(或者我错过了一些上下文),否则真的不需要一次遍历字符串一个字符。

于 2019-12-14T17:04:22.227 回答