Anmelden

View Full Version : Problem mit %LOOKUP



Proggi
15-06-05, 11:06
Hi,

ich habe ein Programm erstellt, in dem ich die Built-in Function %lookup verwende. Nur leider funktioniert das nicht und ich habe keine Ahnung, warum?


D PARM DS
D ...
D AG 82 153
D DIM(12) ASCEND

DARARTG S 6A inz('527401')

C Eval AG(1) = '527401'
__________________________________________________ ____
* Funktioniert nicht (Beispiel1)
C If %lookup(ARARTG:AG) = 0
C ....
C Endif
__________________________________________________ ____
* Funktioniert (Beispiel2) HiLoEQ
C ARARTG Lookup AG 40
C If not %equal
C ....
C Endif
__________________________________________________ ____

In Beispiel1 geht das Programm in die If-Schleife, was falsch ist. In Beipiel2 wird die If-Schleife übersprungen, was richtig ist. Aber wo ist der Unterschied zwischen Beispiel1 und 2 :confused:

Fuerchau
15-06-05, 11:19
Soweit ich sehen kann, hast du dein Array als sortiert definiert, was es aber leider nicht ist.
Prüfe mal die BZ40 an Stelle von %equal !

Beim Lookup einer sortierten Tabelle wird das Binärverfahren verwendet, was bei einer unsortierten Tabelle aber zu unerwünschten Ergebnissen führt.

Entweder lass das ASCEND weg oder füge eine SORTA ein !

Proggi
15-06-05, 12:08
Danke, einfach das ASCEND weglassen und schon klappt es :)