perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 24
Click for quality!




11.02.2012 / 08:19

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragKoplette Datei Abschnittsweise einlesen!
Seitenanfang
Hallo,

bin Perl Neuling und kann meinen aktuellen Gehirnknoten nicht allein lösen!

Ich bearbeite eine XML Datei mit Konzertdaten.
Die folgende Subroutine liefert alle Daten eines Konzerts zurück (ein Array). Nach jedem Aufruf geht die Routine ein Konzert weiter. (Abschnittsweise einlesen...) Die einzelelnen Daten können so Stück für Stück bearbeitet werden. Die Sub hab ich aus "Perl in 21 Tagen - Tag 14" ungefähr übernommen.


sub read_current_event {
my $current_line = "";
my @current_event = "";
while(defined($current_line = <TESTSMALL>))
{
if ( $current_line =~ /<\/eventItem>/ ) { last; }
else { push(@current_event, $current_line); }
};
return @current_event };

Nun die Frage:
Die komplette Datei soll stückweise eingelesen werden, also brauche ich noch eine Schleife die solange läuft bis das geschafft ist. Wie soll die aussehen?
Am besten dann auch eine Meldung ausgibt: Datei eingelesen...

Grüße
Sebastian

Datum: 17.12.2007-14:29

Beitragre: Koplette Datei Abschnittsweise einlesen!
Seitenanfang
Aendere

my @current_event = "";

in

my @current_event = ();

# oder einfach nur in
my @current_event;


Der Unterschied ist dass zuvor @current_event mit einen Leerstring als erstes Element initialisiert wurde. @current_event hat also immer mindestens ein Element.

Wenn du die Codezeile abgeaendert hast, kannst du ueberpruefen ob die Subroutine 'read_current_event' einen Event gefunden hat, in dem du die Anzahl der zurueckgelieferten Elemente pruefst.


while(my @event_items = read_current_event()) {
# mach etwas mit @event_items
}

So lange read_current_event() @event_items zurueckliefert -> mach etwas mit @event_items

Datum: 18.12.2007-00:08

Beitragre: Koplette Datei Abschnittsweise einlesen!
Seitenanfang
Hallo Dash,

das läuft! Danke.

Grüße
Sebastian

Datum: 18.12.2007-19:50

-






-
-