View Full Version : SQLRPGLE Länge vom Inhalt einer Variablen ermitteln
Wie rufst du das Programm derzeit auf?
Gibt das rufende PGM den 2000 byte weg?
oder weniger?
Ab 32 Byte muß die Länge stimmen, sonnst füllt das BS den Wert mit 'irgendetwas'.
Was zeigt der debug, als hex ?
Wie rufst du das Programm derzeit auf?
Probiers mal mit: ... = %TRIM(ADRESSEN)
Moin,
simpel über call PGM(Mail) PARM('test@test.de')
hab's so schon probiert, kein Erfolg :(
Gruß und Danke
Rue
Hallo,
hab die letzten werte mal angesehen er wirft mir lt. Auszug für die letzten 10-Stellen
"00000000000000000000'X" aus...das scheint der Knackpunkt zu sein. Korrekt wäre doch eher
40404040404040404040'X oder?
besten Dank
MfG
Rue
Wenn Du ein Feld mit Fixer Länge (ADRESSEN) in ein Feld mit Variabler Länge schiebst, werden die folgenden Blanks immer mit übernommen.
Du musst also die Blanks von dem Feld ADRESSEN explizit mit %TRIM oder %TRIMR entfernen.
Allerdings sollte bei %Len(%Trim()) das richtige Ergebnis heraus kommen. Wahrscheinlich steht auf der letzten Stelle noch irgendein Sonderwert (z.B. x'00').
Anstatt 4B 0 solltest Du Int(5) oder Uns(5) verwenden.
Wenn Du Protoypting verwenden würdest, könntest Du mit OPTIONS(*TRIM) führende und folgende Blanks bei der Übergabe automatisch entfernen lassen.
Birgitta.
Hallo,
hab die letzten werte mal angesehen er wirft mir lt. Auszug für die letzten 10-Stellen
"00000000000000000000'X" aus...das scheint der Knackpunkt zu sein. Korrekt wäre doch eher
40404040404040404040'X oder?
besten Dank
MfG
Rue
Das Problem hatten wir schon häufiger hier.
Wenn dein Programm 2000 Zeichen erwartet so musst du auch 2000 Zeichen übergeben.
Der CALL generiert ein Hilfsfeld mit mindestens 32 Stellen oder in der angegeben Länge.
Was danach im Speicher steht ist uninitialisierter bzw. übrig gebliebener Müll.
Sorge also einfach dafür, am besten mit einer Variablen, dass du 2000 Zeichen bereitstellst oder mach ein CMD drumherum, dieses sorgt dann automatisch dafür.
Moin,
simpel über call PGM(Mail) PARM('test@test.de')
hab's so schon probiert, kein Erfolg :(
Gruß und Danke
Rue
test@test.de sind eindeutig weniger als 2000 Zeichen
also ...
Robi
Danke Fuerchau, das war mein Problem
Vielen Dank an alle,
ich hab den Parameter nicht ganz gefüllt und dies führte zu meinem Problem.
Daraus lernt man.
liebe Grüße
Rue