View Full Version : String Verarbeitung Free Format
Hi
wie gesagt! Weg nach Rom
oder so
#_rem = %rem(z_timefrom:60);
%subst(d_zbv:4:2) = %char(#_rem);
#_rest = %div(z_timeto:60);
if z_timeto < 600;
d_zbb = '0' + %char(#_rest) + ':';
else;
%subst(d_zbb:1:3) = %char(#_rest) + ':';
endif;
#_rem = %rem(z_timeto:60);
if #_rem < 10;
%subst(d_zbb:4:2) = '0' + %char(#_rem);
else;
%subst(d_zbb:4:2) = %char(#_rem);
endif;
Gruß co_steffl
natürlich geht das auch mit den 11 Zeilen Quellcode zum füllen von d_zbb :D
hier mit 3 Zeilen:
evalR d_zbb = %char(#_rem);
evalR %subst(d_zbb:1:3) = %char(#_rest) + ':';
d_zbb = %xlate(' ':'0':d_zbb);
Hi
danke. Habs unter Autor Woki eingebaut
Gruß co_steffl
;)
Grüße, Kathrin alias woki
Grüße auch von Stefan alis co_steffl
Das eigentliche was ich daraus gelernt habe ist doch die Tatsache das der %Subst im Fall
(x : 1 : 2 ) nur auf die Adresse ab Stelle 1 in der Länge 2 verweist und KEINE nachfolgende Verkettung zulässt bzw. keinen weiteren String anfügt während dies bei einer einfachen String Verkettung ohne %Subst funktioniert.
Belassen wir es dabei
Gruß co_steffl
genau, nachfolgende Verkettungen müsstest du in einem separatem Statement angeben.
Die geht naturlich auch ;)
d TimeNum s 4p 0 inz(0708)
d TimeChar s 5a
/free
TimeChar = %trim(%editw(TimeNum: '0 : '));
Das eigentliche was ich daraus gelernt habe ist doch die Tatsache das der %Subst im Fall
(x : 1 : 2 ) nur auf die Adresse ab Stelle 1 in der Länge 2 verweist und KEINE nachfolgende Verkettung zulässt bzw. keinen weiteren String anfügt während dies bei einer einfachen String Verkettung ohne %Subst funktioniert.
Das ist auch richtig so, siehe Beschreibung (http://publib.boulder.ibm.com/infocenter/iadthelp/v7r0/topic/com.ibm.etools.iseries.langref.doc/c0925086671.htm#HDRBBSUBSA). Aber laß doch die Längenangabe einfach mal weg.
Spateneder
08-12-09, 12:05
Wenn es nur ums Aufbereiten geht, dann nimm doch %editw (einfach eine Konstante für das editword definieren und dann Bildschirmfeld = %editw(Variable : editword). Da brauchst Du doch sonst gar nichts. Eventuell halt noch deinen numerischen Wert mit Multiplikation ider Division zurechtmachen.
Wenn es sein kann, dass Du mit dem Zeug auch rechnen wirst, dann schieb es in ein Time-Feld und gib das dann entsprechend aus.
Hi Pikachu
unglaublich aber wahr :)
...If the length is not specified then the string is referenced to its end.
Es funktioniert. Erscheint im nachhinein auch logisch. Danke !
Wieder einiges gelernt heute
Gruß und danke an alle
co_steffl