
Zitat von
B.Hauser
Warum wollt Ihr denn partout die Räder neu erfinden!
@Birgitta,
nicht neu erfinden, nur einfacher...
Siehe hier:
Code:
D $strng s 8192
D $text s 250
D $cvtxt DS 8192 qualified
D Feld1 50A
D Feld2 50A
D Feld3 50A
D Feld4 50A
D Feld5 50A
D Feld6 50A
D $start S 5U 0 inz(1)
D $end S 5U 0
D $len S 5U 0
/free
$text = 'Wieso sollte die Funktion WRAPTEXT von Michael +
Sansosterra den Erfordernissen nicht entsprechen? +
M.E. ist dies genau was gefordert wurde. +
Allerdings geht das einiges einfacher und vor allem +
verständlicher. +
Wieso mit Kanonen auf Spatzen schiessen?';
$strng = $Text;
exsr $Wrap;
... do what ever you want...
*inlr = *on;
// Convert Fliesstext in eine Datenstruktur
begsr $Wrap;
$len = %len($cvtxt.Feld1);
$end = $len;
dow $strng <> *blanks;
dow %subst($strng:$end:1) <> *blank
and $end > 1;
$end -= 1;
enddo;
if $end > $len or $end <= 1; // overflow
$end = $len;
endif;
%subst($cvtxt:$start:$len)=%subst($strng:1:$end);
$strng = %trim(%subst($strng:$end))+' ';
$start += $len;
$end = $len;
enddo;
endsr;
/end-free
Alternativ mit Arrays arbeiten.
@Robert
Gute Idee der Shift - alte Schule, gelernt ist gelernt. ;-)
Just my 2ct's
Bookmarks