Forum Doku Wiki Blog

Forumsarchiv 1999, Dezember
Splitten ohne Zeichen?

archivierte Beiträge lesen

  1. (PERL) Splitten ohne Zeichen? von Tom, 17. 12. 1999, 19:03

Splitten ohne Zeichen?

Der folgende Beitrag wurde am 17. 12. 1999, 19:03 Uhr von Tom veröffentlicht.

Hi,

gibt es in Perl eine Möglichkeit, ohne Zeichen zu splitten? Also z.B. dass von einer Zahl (z.B. 32549) jede Ziffer als Skalar eines Arrays gesplittet wird?
Bzw. kann man es auch machen, dass nach jeder 2. Ziffer (oder 3., 4. ...) splittet?

Danke & viele Grüße
Tom

Splitten ohne Zeichen?

Der folgende Beitrag wurde am 17. 12. 1999, 19:08 Uhr von Calocybe veröffentlicht.

Hi!

> gibt es in Perl eine Möglichkeit, ohne Zeichen zu splitten? Also z.B. dass von einer Zahl (z.B. 32549) jede Ziffer als Skalar eines Arrays gesplittet wird?
> Bzw. kann man es auch machen, dass nach jeder 2. Ziffer (oder 3., 4. ...) splittet?

Mit split() geht das meines Wissens nicht. Ich wuerde das ungefaehr so machen:

$string = "32549";
push(@chars, $1) while($string =~ s/^.//);

bzw. um immer zwei Zeichen abzusplitten:

push(@twochars, $1) while($string =~ s/^..//);
push(@twochars, $string) if ($string);   # falls eine Ziffer uebriggeblieben, diese auch noch pushen

Calocybe

Splitten ohne Zeichen?

Der folgende Beitrag wurde am 17. 12. 1999, 19:50 Uhr von Tom veröffentlicht.

Hi Calocybe,

also ich hab das jetzt mal so probiert (hoffentlich hab ich das richtig verstanden):

open(ID,"$root/dat/$Q{'id'}.txt");
$countvalue = <ID>;
close(ID);
push(@chars,$countvalue) while($countvalue =~ s/^.//);
print "Content-type: text/html\n\n";
foreach $line (@chars){
  print "$line<br><br>\n";
}

in der Datei, die ausgelesen wird, steht z.B. der Wert "12345". Mit dem obenstehenden Code wird folgendes ausgegeben:

---

2345

345

45

5

---

keine Ahnung, ob das an mir liegt, oder es einfach nicht der richtige Code für so eine Anwendung ist...

danke & viele Grüße
Tom

Splitten ohne Zeichen?

Der folgende Beitrag wurde am 17. 12. 1999, 21:45 Uhr von Calocybe veröffentlicht.

Hi Tom!

Sorry, ich hatte da einen Fehler gemacht (und diesen dann weiter kopiert):

Nochmal mein Text:
> > push(@chars, $1) while($string =~ s/^.//);
Muss heissen:
push(@chars, $1) while($string =~ s/^(.)//);

Durch die vergessenen Klammern um den Punkt wurde $1 nicht definiert - das konnte natuerlich nichts werden.

Analog statt
> > push(@twochars, $1) while($string =~ s/^..//);
push(@twochars, $1) while($string =~ s/^(..)//);

Ansonsten ist der Code ok. Tausche einfach nochmal die push-Zeile aus.

Calocybe

Splitten ohne Zeichen?

Der folgende Beitrag wurde am 17. 12. 1999, 21:52 Uhr von Tom veröffentlicht.

Hi Calocybe,

scheint immer noch nicht zu funktionieren. Ich werd's morgen nochmals ausprobieren, ich bin jetzt wohl schon zu müde dafür :)
Schon mal danke für Deine Hilfe

Gruß
Tom

Splitten ohne Zeichen?

Der folgende Beitrag wurde am 17. 12. 1999, 22:43 Uhr von Michael Schröpl veröffentlicht.

> Also z.B. dass von einer Zahl (z.B. 32549) jede Ziffer als Skalar eines Arrays gesplittet wird?

Das geht, und zwar mit der naheliegendsten Konstruktion:

$wert = 32549;
@array = split (//, $wert);
foreach my $feld (@array)
        {print "Feld: '$feld'\n"; }

© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4