PDA

View Full Version : Procedure Parameterfehler - Fehlendes PTF?



S.Neinawaie
14-08-14, 07:44
Hallo!

Ich habe folgende RPG Procedure:

P CvtCharToPack B Export
D PI
D Ptr_RcvVar * Const
D Length 3I 0 Const
D Decpos 3I 0 Const
D string 128A Const
D DecPntSymbol 1A Const Options(*NoPass:*Omit)
D ThousandSep 1A Const Options(*NoPass:*Omit)
D CurSymbol 1A Const Options(*NoPass:*Omit)

& rufe es so auf:


D myDec S 30P 9
D myChar S 128

myChar = '9763,123';
cvtCharToPack(%addr(myDec):%len(myDec):%decpos(myD ec):myChar);

Nun ist mir beim debuggen folgendes aufgefallen:

Bei "Eval DecPntSymbol" bekomme ich wie erwartet die Rückmeldung "Zeiger nicht auf die Position gesetzt, auf die Bezug genommen wird."

Bei "Eval CurSymbol" bekomme ich immer den Wert "C" angezeigt, obwohl ich den Parameter nicht befülle.
277

Fehlt mir hier ein PTF? Könnt Ihr den Fehler nachstellen?
Release: V7R1M0

LG,
Sam

andreaspr@aon.at
14-08-14, 08:23
Hallo Sam,

das Problem hatte ich auch paar mal.
Da steht noch irgendein alter Wert im Speicher da diese nicht automatisch initialisiert werden.
Deshalb ist ein Check wie folgt immer wichtig:
if %parms >= %parmnum(CurSymbol);

lg Andreas

S.Neinawaie
14-08-14, 08:39
Hallo Andreas,

meine Prüfungen sehen meistens so aus:


If %parms >= %parmnum(CurSymbol) And %addr(CurSymbol) <> *Null;
SymbolMask.CurSymbol = CurSymbol;
EndIf;


Edit: Ich finde es dennoch sehr interessant das CurSymbol nicht NULL ist.

LG,
Sam