text filetieren

text filetieren

am 29.03.2007 21:27:55 von Patrick Bates

hallo!

ich habe einen textblock mit einer beliebigen anzahl zeichen, etwa 200.

nun soll der text in einzelne blöcke von maximal 60 zeichen geteilt werden.

ich mach das mit

foreach my $string (@textblock){
if (length($ausgabe) + length($string) <= 60)
{$ausgabe .= "$string ";}
else
{$ausdruck .= $ausgabe;}

das problem dabei ist, dass ich nicht draufkomme, wie ich es anstelle, dass
ich zu einer ausgabe komme, wenn der string nicht 60 zeichen lang wird, und
wie
ich den 'restlichen' text (zeichen 61 ... 80) rausbekomme.


greets
-/--\-
alex

Re: text filetieren

am 29.03.2007 22:03:14 von Christian Winter

Alexander Kainz schrieb:
> hallo!
>
> ich habe einen textblock mit einer beliebigen anzahl zeichen, etwa 200.
>
> nun soll der text in einzelne blöcke von maximal 60 zeichen geteilt werden.
>
> ich mach das mit
>
> foreach my $string (@textblock){
> if (length($ausgabe) + length($string) <= 60)
> {$ausgabe .= "$string ";}
> else
> {$ausdruck .= $ausgabe;}
>
> das problem dabei ist, dass ich nicht draufkomme, wie ich es anstelle, dass
> ich zu einer ausgabe komme, wenn der string nicht 60 zeichen lang wird, und
> wie
> ich den 'restlichen' text (zeichen 61 ... 80) rausbekomme.

Ist das interesse akademischer Natur, oder reicht ein Hinweis auf
Text::Wrap?

-Christian

Re: text filetieren

am 30.03.2007 10:19:10 von Jan Teune

Moin Alex...
wie wärs mit einem:
$string =~ s/(.{60,60})/$1\n/g;
print $string;
das sollte deinen string in 60er-Blöcke zerhackstückeln
ist der string kürzer, matcht der ausdruck nicht mehr und du
printest einfach den string...

Gruss
Jan

PS: sorry für die 2 Anglizismen in meinem Posting ;-)

Alexander Kainz schrieb:
> hallo!
>
> ich habe einen textblock mit einer beliebigen anzahl zeichen, etwa 200.
>
> nun soll der text in einzelne blöcke von maximal 60 zeichen geteilt werden.
>
> ich mach das mit
>
> foreach my $string (@textblock){
> if (length($ausgabe) + length($string) <= 60)
> {$ausgabe .= "$string ";}
> else
> {$ausdruck .= $ausgabe;}
>
> das problem dabei ist, dass ich nicht draufkomme, wie ich es anstelle, dass
> ich zu einer ausgabe komme, wenn der string nicht 60 zeichen lang wird, und
> wie
> ich den 'restlichen' text (zeichen 61 ... 80) rausbekomme.
>
>
> greets
> -/--\-
> alex
>
>