Hallo zusammen,
ich habe eine EXCEL-Tabelle unter der Endung CSV gespeichert. Nun möchte ich mit einem Perl-Script diese Datei zeilenweise auslesen und dann in eine txt-Datei schreiben.
Hier ein paar Codeschnipsel:
use strict;
use Cwd; # Ermittelt das aktuelle Arbeitsverzeichnis
use File::Copy; # Ermöglicht das Kopieren von Dateien und gilt als wichtides
# Tool, um Dateien mit Perl betriebssystemunabhängig kopieren zu können
use File::Find; # Durchsucht Verzeichnisbäume nach Dateien.
################################################################################
# Variablen, die Werte aus der "CSV-Datei" übernehmen.
undef $esn;
undef $fsn;
undef $pl;
undef $sn;
undef $pf;
undef $porte;
undef $portf;
################################################################################
open(CSVDatei, ">>BR_neu.csv"); # CSV-Datei zum anhängenden Schreiben öffnen
close(CSVDatei);
# CSV-Datei Zeichenweise auslesen
@CSVDatei = (""); # 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(CSVDatei, "<BR_neu.csv") || die "CSV-Datei nicht gefunden\n";
while(<CSVDatei>) # Semikolonbegrenzte Datei einlesen
{
if($i == 0) # erste Zeile der Datei einlesen
{
$Felder = $_; # Feldnamen ermitteln
}
else
{
$CSVDatei[$i] = $_; # ab zweiter Zeile in @CSVDatei einlesen
}
$i++; # Datensatzzähler erhöhen
}
close(CSVDatei);
$Anzahl = $i - 1; # Anzahl Datensätze merken
chop($Felder);
@Datenfelder = split(/;/,$Felder); # Erste Zeile mit Feldnamen aufdröseln
for(@CSVDatei) # solange Daten in der CSv-Datei sind
{
@Datensatz = split(/;/,$_); # Aktuellen Datensatz aufdröseln
$i = 0;
for(@Datensatz)
{
print SQLVorlage "<b>$Datenfelder[$i]:</b> $Datensatz[$i]<br>\n"; # Aktuellen Datensatz schreiben
$i++;
}
}
print SQLVorlage "</body>\n</html>\n";
close(SQLVorlage);
print $Anzahl," Datensaetze geschrieben\n"; # Nur zur Kontrolle: auf Standardausgabe
Kann mir einer helfen?
Gruß Rainer
RainerS Gast |