删除 table 中的重复项(rexx 语言)

remove duplicates in a table (rexx language)

我有一个关于在 table(rexx 语言)中删除重复项的问题,我在使用 rexx 语言的 netphantom 应用程序上。
我需要一个关于如何删除 table.

中的重复项的示例

虽然我确实想过如何去做,比如对 A 和 B 这两个 table 使用两个循环,但我对此并不熟悉。

我的情况是:

rc = PanlistInsertData('A',0,SAMPLE)

TABLE A(这个table有重复数据)

123   
1   
1234   
12   
123   
1234   

我需要像这样过滤掉那些重复数据到 TABLE B 中:

123   
1234   
1   
12    

您可以通过以下方式消除重复项:

  1. 如果 InStem 第一个元素,将该元素移动到 OutStem 否则检查当前 InStem 元素的所有 OutStem 元素
  2. 如果找到元素,迭代到下一个 InStem 元素,否则将 InStem 元素添加到 OutStem

代码片段:

/*Input Stem - InStem.
  Output Stem - OutStem.
  Array Counters - I, J, K */

J = 1
DO I = 1 TO InStem.0
   IF I = 1 THEN
      OutStem.I = InStem.I
   ELSE
      DO K = 1 TO J
         IF (InStem.I ?= OutStem.K) & (K = J) THEN
         DO
            J = J + 1
            OutStem.J = InStem.I
         END
         ELSE
         DO
            IF (InStem.I == OutStem.K) THEN
               ITERATE I
         END
      END
END
OutStem.0 = J

希望对您有所帮助。

您可以使用lookup stem variables 来测试您是否已经找到一个值。 这应该可以工作(注意我没有测试过所以可能有语法错误)

no=0;
yes=1

lookup. = no   /* initialize the stem to no, not strictly needed */
j=0
do i = 1 to in.0
   v = in.i
   if lookup.v <> yes then do
       j = j + 1
       out.j = v
       lookup.v = yes
   end
end
out.0 = j