2017-01-20 66 views
-1

我有一個關於刪除表中重複項的問題(rexx語言),我在使用rexx語言的netphantom應用程序中。
我需要一個關於如何刪除表中重複項的示例。刪除表中的重複項(rexx語言)

我對如何做到這一點有一個想法,就像對這兩個表A和B使用兩個循環一樣,但我對此並不熟悉。

我的情況是:

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

表A(具有重複數據這個表)

123 
1 
1234 
12 
123 
1234 

我需要過濾掉這些重複數據轉換成表B所示:

123 
1234 
1 
12  

回答

0

您可以通過以下方式消除重複項:

  1. 如果Instem公司第一要素,移動元素OutStem否則檢查所有當前Instem公司元素
  2. 的OutStem元素如果被找到的元素,迭代到別的下一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 

希望這會有所幫助。

+0

你有任何樣品代碼? –

+0

我已經更新了代碼。如果你得到答案,請注意。謝謝 – archit

2

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

這是使用Rexx-y成語的一種很好的方式,而不是僅僅寫一些你可以用任何語言編寫的循環。 –

+1

感謝羅斯,以及更短,它應該是更快的大表(如果莖查找是有效的)。乾的變量總是Rexx的特徵之一,所以不妨使用它們 –