View Full Version : aus einem String Werte ziehen die durch *BLANKS getrennt sind
Hallo,
hab mich total verrannt, brauche dringend eure Hilfe.
Habe einen String TEXT50 = 50 A , der sich ständig ändert.
z.B.
'CON 12/05 01/06 04/06 07/06'
'CON 11/05 01/06 04/06 08/06'
Möchte hierraus jetzt die Werte 12/05 usw. ziehen, die
nicht immer an der gleichen Stelle stehen.
Hat da jemand einen eleganten Lösungsvorschlag in RPGLE ??
Danke
falke34
kuempi von stein
26-09-05, 16:17
Hallo,
hab mich total verrannt, brauche dringend eure Hilfe.
Habe einen String TEXT50 = 50 A , der sich ständig ändert.
z.B.
'CON 12/05 01/06 04/06 07/06'
'CON 11/05 01/06 04/06 08/06'
Möchte hierraus jetzt die Werte 12/05 usw. ziehen, die
nicht immer an der gleichen Stelle stehen.
Hat da jemand einen eleganten Lösungsvorschlag ??
Danke
falke34
hello,
in CLP
RPG
ILE-RPG
or what?
k.
und nachsatz:
wenn sich die pos. ändert, ändert sich die pos von CON?
nachsatz2:
wenn CON sich ändert, kommt CON aber immer vor und DANACH sind die positionen immer da?
hello,
in CLP
RPG
ILE-RPG
or what?
k.
und nachsatz:
wenn sich die pos. ändert, ändert sich die pos von CON?
nachsatz2:
wenn CON sich ändert, kommt CON aber immer vor und DANACH sind die positionen immer da?
In ILE-RPG
CON steht am Anfang des String, daran erkenne ich das ich daraus die Werte ziehen muss !
MfG
Falke34
Hier hilft nur programmieren !
Die Funktion %scan liefert das gefundene Zeichen, die Funtion %check die Position des ersten ungleichen zeichens.
Als C-Funktionen gibt es da "char* strtok(char* Start, char* TZ)", die einem einiges abnimmt.
kuempi von stein
27-09-05, 08:07
In ILE-RPG
CON steht am Anfang des String, daran erkenne ich das ich daraus die Werte ziehen muss !
MfG
Falke34also wenn die ersten gewünschten Daten immer an Pos.5 starten ist es ja noch leichter...
hier mal so grob wie man es ungefähr machen könnte...
gibt tausend andere/bessere Lösungen..
und Achtung, ist nur ne Grobvorlage, kein Anspruch auf Korrektheit.
* Beispiel 'BLABLACON 12/05 01/06 04/06 07/06'
C 'CON' scan strin:1 po 5 0
* liefert (Start)Position von CON [=7?)
C add 4 po
* addiert 4 drauf (=Startposition 11?)
C eval cdatum=%triml(%subst(strin:po:5))
* ergibt "12/05" ?? usw.usw
k.
Ich hab hier noch ne selbstgeschrieben Prozedur rumliegen namens SplitString (ILE-RPG), damit kann man die Tokens aus einem String easy extrahieren. Wenn Interesse besteht, kann ich den Quelltext zusenden.
Danke für die Hilfe,
falke34
Ich hab hier noch ne selbstgeschrieben Prozedur rumliegen namens SplitString (ILE-RPG), damit kann man die Tokens aus einem String easy extrahieren. Wenn Interesse besteht, kann ich den Quelltext zusenden.
Wäre nett und vielen Dank für die Hilfe
falke34