Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]8730[/thread]

split nur einmal ausführen



<< >> 3 Einträge, 1 Seite
kale_1990
 2007-02-06 16:41
#74093 #74093
User since
2006-09-12
104 Artikel
BenutzerIn
[default_avatar]
hallo, ich habe einen string, z.b.

Umsatz
Bruttoumsatz;0;150
Jahr
2000;2001;2002;2003;2004
eins;10;20;30;40
zwei;20;30;40;50
drei;30;60;90;120
vier;15;30;45;60

und führe jetz folgendes aus:

Code: (dl )
  ($datei,$text) = split(/\n/, $txt);

nun schreibt er in $datei "Umsatz" und in $text "Umsatzentwicklung;p;n" das heißt er splitet nach dem ersten split nocheinmal oder? das soll er aber nicht...wie mach ich das?
THERE'S MORE THAN ONE WAY TO DO IT - TMTOWTDI

EASY THINGS SHOULD BE EASY - HARD THINGS SHOULD BE POSSIBLE
nepos
 2007-02-06 16:49
#74094 #74094
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Zum einen passen deine Daten und die Beschreibung nicht so ganz zusammen. Von "Umsatzentwicklung" sehe ich nix ;)
Könntest du eventuell dein Ziel mal genauer beschreiben? Was genau willst du wie aus der Datei auslesen?
Wenn du Umsatz in $datei haben willst und den Rest in $text, dann musst du statt $text @text schreiben.
Ishka
 2007-02-06 16:54
#74095 #74095
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Meinst du, daß du höchstens zwei Teile haben willst? Durch einen weiteren Parameter bei split kannst du sagen, wieviele Teile du höchstens haben willst, also zB.
Code: (dl )
($datei,$text) = split(/\n/, $txt, 2);

Aber wie schon nepos sagte, passen bei dir Daten und Beschreibung nicht zusammen ;)
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
<< >> 3 Einträge, 1 Seite



View all threads created 2007-02-06 16:41.