Hallo, ich programmiere noch nicht sehr lange perl, und jetzt hab ich ein problem bei dem ich nicht weiterkomme. ich hoffe irgendeiner von euch kann mir evtl. helfen.
ich muss eine textdatei einlesen, die als tabelle aufgebaut ist.daraus muss ich einige daten abfragen und dann diese datensätze wieder in eine textdatei ausgeben, die ebenfalls als tabelle aufgebaut ist.
also feldname1,fledname2...
wert1.1,wert1.2...
wert2.1,wert2.2...
das problem ist eigentlich nicht das einlesen, sonder das es so viele feldnamen sind, das es über 4 zeilen geht.
ich habe schon ein gutes script im forum gefunden, nur liest man da für die feldnamen nur die erste zeile ein, wie kann ich das umstellen so das ich die ersten 4 zeilen als feldnamen einlese?
hir mal das script.
und vielen dank im voraus.
#!/usr/bin/perl
@Adressen = (""); # Speicher für alle Datensaetze
@Datensatz = (""); # Speicher für alle Felder des aktuellen Datensatzes
$Felder = ""; # Speicher für die Namen der Felder (stehen in der ersten Dateizeile
$i = 0;
open(eingabe, "<eingabedatei.txt") || die "Adressendatei nicht gefunden\n";
while(<eingabe>) # Kommabegrenzte Datei einlesen
{
if($i == 0) # erste Zeile der Datei einlesen
{
$Felder = $_; # Feldnamen ermitteln
}
else
{
$Adressen[$i] = $_; # ab zweiter Zeile in @Adressen einlesen
}
$i++; # Datensatzzähler erhöhen
}
close(eingabe);
$Anzahl = $i - 1; # Anzahl Datensätze merken
chop($Felder);
@Datenfelder = split(/,/,$Felder); # Erste Zeile mit Feldnamen aufdröseln
open(OUT, ">ausgabe.txt"); # HTML-Datei zum Schreiben öffnen
for(@Adressen) # solange Daten in der Adressenliste sind
{
@Datensatz = split(/,/,$_); # Aktuellen Datensatz aufdröseln
$i = 0;
for(@Datensatz)
{
print OUT "$Datenfelder[$i]"; # Aktuellen Datensatz schreiben
print OUT "\n";
print OUT "$Datensatz[$i]"; # Aktuellen Datensatz schreiben
$i++;
}
}
#print OUT $Felder;
close(OUT);
print $Anzahl," Datensaetze geschrieben\n"; # Nur zur Kontrolle: auf Standardausgabe