PDA

View Full Version : editcode



Seiten : 1 [2]

KingofKning
20-09-12, 08:23
Dann zeig doch einfach mal das was Du gemacht hast.

Könnte hilfreich sein..


GG

Jokersams
20-09-12, 08:58
D ZZINH S 132A
D ZZLAEN S 3S 0
D ZZINHZ S 132A
/free
//
ZZINH = 'abc';
ZZLAEN= 20;
//
%subst(ZZINH:1:ZZLAEN);
%len((ZZLAEN)/2)-2;
return;
/end-free

Das war jetzt irgendwie mein Grundgedanke, hänge mit meine Gedanken aber immer mehr und drehe mich im kreis :)

wobei das len eben nur aus verzweiflung dazu kam und es keinerlei sinn dort macht ^^

Fuerchau
20-09-12, 09:13
Nimm doch obigen %subst:

Zielfeld=*blank;
%subst(Zielfeld:
%int((%size(Zielfeld)-%len(%trim(Quellfeld)))/2)+1 :
%len(%trim(Quellfeld)) )
= %trim(Quellfeld)

malzusrex
20-09-12, 09:15
d zzinh s 132
d zzinhz s 132
d
d zzlaen s 3 0

/free
zzinh = 'abc';
zzlaen = 20;

%SubSt( zzinhz : %Int(( zzlaen - %Len(%trim( zzinh))) /2)+1:
%len( %trim( zzinh)) ) = %Trim( zzinh);
/end-free
c eval *inlr = *on

Jokersams
20-09-12, 09:24
Klappt perfekt, vielen dank an alle :)

Werde das Projekt AS400 aber lieber nicht ganz so ernst nehmen.... ist anscheinend nicht meine Welt :)

LG!

Fuerchau
20-09-12, 09:34
Wie schon beschrieben kannst du dir zzlaen sparen, da die Funktion "%size(Feld)" dir die definierte Länge eines Feldes liefert.

malzusrex
20-09-12, 10:36
Naja, soweit ich den Verstanden habe, ist das Ausgangsfeld immer 132 Zeichen lang und in den Längenfeld steht drinn, wieviele Zeichen er eigentlich maximal haben will

Fuerchau
20-09-12, 10:44
Stimmt, da hast du recht.
Ich hatte mir da mal (ca. 1998) eine Unterfunktion gebastelt :).