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



#!/COMMUNITY

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




10.02.2012 / 21:05

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


BeitragLesen aus einer Datei
Seitenanfang
hallo,

ich möchte aus einer datei mit mehreren zeilen und spalten daten lesen um sie dann mathematisch zu verarbeiten. also in der datei ist sowas drin:
1 2 3 4 5
6 7 7 8 8
3 4 5 6 7

diese daten sollen jeweils spaltenweise verarbeitet werden. da ich neu mit perl anfange weiß ich es nicht und bitte um hilfe.

danke

Datum: 23.04.2008-17:33

Beitragre: Lesen aus einer Datei
Seitenanfang
generell ist es in Perl (wie auch in anderen Sprachen) ungünstig Daten aus Dateien spaltenweise zu verarbeiten. Sinnvoller und um vieles einfacher wäre eine zeilenweise Verarbeitung.

generell kannst du die Daten in ein mehrdimensionales Array einlesen um sie anschliessend zu verarbeiten...


#!/usr/bin/perl
use CGI::Carp qw(fatalsToBrowser); #Fehler im Browser anzeigen
print "Content-Type: text/html\n\n"; # HtmL Header

# Einlesen der Daten
@daten = ();
open(IN,"<daten.txt"); #Datei einlesen
while($zeile = <IN>) { #Zeilenweise auslesen
push(@daten, [split(/ /,$zeile)]); #Daten in ein mehrdimensionales Array
};
close(IN); # Datei schliessen

# Verarbeiten der Daten
@summe = ();
foreach $zeile(@daten){ # Zeile für Zeile
for($i=0;$i<@{$zeile};$i++){ # Spalte für Spalte - $i=Nummer der Spalte
$summe[$i] += $zeile->[$i]; # die jeweilige Spalte summieren
};
};

# Ausgeben
for($i=0; $i<@summe; $i++){
print "Spalte ".$i." : ".$summe[$i]."<br>";
};

als Resulat bekommst du bei deinem Beispiel:
Spalte 0 : 10
Spalte 1 : 13
Spalte 2 : 15
Spalte 3 : 18
Spalte 4 : 20

Nach dem Schritt #einlesen hast du ein Array @daten welches so aufgebaut ist :
$daten[0]->[0] = 1
$daten[0]->[1] = 2
$daten[1]->[0] = 6
$daten[1]->[1] = 7
also $daten[zeile]->[spalte]

natürlich könnte man beim einlesen auch gleich so einlesen, dass man die Daten umgekehrt speichert. Also $daten[spalte]->[zeile]

Datum: 24.04.2008-14:57

Beitragre: Lesen aus einer Datei
Seitenanfang
danke

Datum: 24.04.2008-16:00

-






-
-