Thread Auslesen aus .txt bis Trennzeichen, wie?: Auslesen aus .txt bis Trennzeichen, wie?
(51 answers)
Opened by Gast at 2005-10-26 14:09 Code: (dl
)
#!D:/Programme/Perl -w Wenn du "use warnings" drin hast, solltest du das "-w" weglassen. Naeheres siehe perllexwarn. Code: (dl
)
1 use strict; Diese Variablen brauchst du entweder gar nicht oder zumindest nicht hier. Variablen immer im kleinstmoeglichen Bereich deklarieren (Schleifenvariablen z.B. nur in der Schleife). Code: (dl
)
1 my $file = 'apo_neu-1.csv'; Nicht gefunden ist eine Moeglichkeit. Der wahre Grund steht aber in $!, deshalb sollte man sich den Inhalt dieser Variable bei Fehlern mit ausgeben lassen: open (...) or die "Fehler beim Oeffnen: $!"; Zu diesem if (...) fehlt eine else-Zweig: Was soll passieren, wenn eine Zeile nicht geparst werden kann? Vgl. pqs Kommentar oben. Code: (dl
)
1 { Warum so umstaendlich? Du fasst alle Felder aus @fields zum Skalar $geparst zusammen, weist diesen dann dem Array @geparst zu (das somit nur ein Element enthaelt) und gibst dieses Array dann in DATEI aus - mit einer Schleife ueber genau ein Element. Das ginge kuerzer mit: print DATEI join (' ', @fields), "\n"; Code: (dl
)
1 } Aeh ... was soll das denn? Du schreibst erst die unsortierten Daten in "datei.txt", um sie dann gleich wieder aus der Datei auszulesen, im Anschluss zu sortieren und dann nochmal in "datei.txt" zu schreiben?? Und brauchst du diese Datei danach ueberhaupt nochmal? Warum speicherst du nicht gleich in der Schleife oben in das Array @geparst, statt in die Datei? push @geparst, join (' ',@fields); Code: (dl
)
1 my @sorted = map{$_->[0]}sort{$a->[1]->[-1] <=> $b->[1]->[-1]}map{[$_,[split(/ /,$_)]]}@geparst; # Sortieren nach dem letzten Arrayfeld Okay, wofuer auch immer du die Datei brauchst ... Code: (dl
)
1 #----------------------------------------------------------------------------------------- Uh, das ist wirklich boese. Sechsmal fast identischer Code. Den koennte man wirklich gut zusammenfassen: Code: (dl
)
1 # Aufteilen auf $servercnt Server (ungetestet) Edit: ungetestet und falshc. Das mit dem indirekten Filehandle hinter print klappt so nicht (wie ich schon befuerchtete) und beim Modulo fehlen Klammern. Siehe den verbesserten Code in meinem naechsten Beitrag.\n\n <!--EDIT|Dubu|1131640430--> |