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

时间:2017-01-20 02:01:45

标签: rexx

我有一个关于删除表格中的重复项(rexx语言)的问题,我使用的是使用rexx语言的netphantom应用程序。
我需要一个关于如何删除表中重复项的示例。

我确实想过如何做到这一点,就像对A和B这两个表使用两个循环一样,但我对此并不熟悉。

我的情况是:

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

表A(此表具有重复数据)

123   
1   
1234   
12   
123   
1234   

我需要将这些重复数据过滤掉到表B中,如下所示:

123   
1234   
1   
12    

2 个答案:

答案 0 :(得分:3)

您可以使用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

答案 1 :(得分:0)

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

  1. 如果是InStem第一个元素,则将元素移动到OutStem Else,检查当前InStem元素的所有OutStem元素
  2. 如果找到元素,则迭代到下一个InStem元素Else将InStem元素添加到OutStem
  3. 代码段:

    /*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
    

    希望这有帮助。