-
SQLRPGLE Länge vom Inhalt einer Variablen ermitteln
Moin Moin,
ich stehe vor einem Problem.
Mein Wünsch ist es, an ein SQLRPGLE Programm einen String von 2000 Zeichen (E-Mail-Adressen) als Parameter zu übergeben. Diese brösele ich im Programm auseinander.
Was Ich aber brauche, ist die Länge des Inhaltes des übergebenen Strings.
Bsp.: String = test@test.de -> Ergebnis = 12
String = test@test.de, dump@dump.de -> Ergebnis = 26
Bisher wird mir als Ergebnis immer 2000 ausgegeben, was auch der Deklaration entspricht.
Programm Source:
D ENDE_POS S 4b 0
D char_varying S 2000a Varying
D ADRESSEN S 2000
*ENTRY PLIST
PARM ADRESSEN
C eval char_varying = ADRESSEN
/free
ENDE_POS = %len(%trim(char_varying));
/end-free
Hab schon endlich Zeit gegoogelt, aber leider nichts passendes gefunden.
Vorab, vielen Dank!
Gruß
Rue
-
Hallo.
Hmmm ... kenn mich jetzt nicht so mit VARYING aus aber vielleicht liegt es ja daran. Da deine
Empfangsvariable (ADRESSEN) ja auch auf 2000 Zeichen beschränkt ist nehm doch mal diese
und mach ein ende_pos = %len(%trim(ADRESSEN)) ... einen Versuch ist es Wert oder ?
Gruß,
Ralf
-
Moin,
so funzt das.
d Field S 2000A Varying
d String S 2000A Inz('Ergebnis des Inhaltes ist 28')
d FieldLen S 5S 0 Inz
Field = String ;
FieldLen = %Len(%Trim(Field)) ;
Dsply FieldLen ;
mfg
DKSPROFI
-
Wie rufst du das Programm derzeit auf?
Probiers mal mit: ... = %TRIM(ADRESSEN)
-
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.
-
Zitat von TheDevil
Hallo.
Hmmm ... kenn mich jetzt nicht so mit VARYING aus aber vielleicht liegt es ja daran. Da deine
Empfangsvariable (ADRESSEN) ja auch auf 2000 Zeichen beschränkt ist nehm doch mal diese
und mach ein ende_pos = %len(%trim(ADRESSEN)) ... einen Versuch ist es Wert oder ?
Gruß,
Ralf
Hallo,
danke für den Tipp aber leider keine Veränderung
Gruß
Rue
-
Hallo.
Wie Brigitta schon schrieb. Evtl. steht noch ein Wert ungleich "Leerzeichen" in Stelle 2000.
Mach doch mal eine Abfrage mit Substring auf die letzte Stelle.
If letzte Stelle mit Substring <> "" dann blablablabla ... und dann rein mit dem Debugger ...
Gruß,
Ralf
-
Moin,
mach doch mal das kleine Testprogramm, das funzt so.
mfg
DKSPROFI
-
Zitat von DKSPROFI
Moin,
so funzt das.
d Field S 2000A Varying
d String S 2000A Inz('Ergebnis des Inhaltes ist 28')
d FieldLen S 5S 0 Inz
Field = String ;
FieldLen = %Len(%Trim(Field)) ;
Dsply FieldLen ;
mfg
DKSPROFI
Moin,
mit dem festen Wert klappt es wunderbar.
Nur leider nicht wenn ich dies als Parameter mitgeben will.
Besten Dank
MfG
Rue
-
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 ?
Das Notwendige steht über dem technisch machbaren.
(klingt komisch, funktioniert aber!)
-
Wie rufst du das Programm derzeit auf?
Zitat von Robi
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 ?
-
Zitat von Pikachu
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
Similar Threads
-
By jlindner in forum NEWSboard Programmierung
Antworten: 18
Letzter Beitrag: 30-12-16, 15:55
-
By Witaseck in forum NEWSboard Programmierung
Antworten: 20
Letzter Beitrag: 14-12-16, 17:23
-
By msost in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 02-03-16, 17:39
-
By dago in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 12-07-02, 10:15
-
By delphix in forum IBM i Hauptforum
Antworten: 10
Letzter Beitrag: 23-01-02, 14:02
Tags for this Thread
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks