Schrift
[thread]11617[/thread]

Datei Handle überprüfen



<< >> 4 Einträge, 1 Seite
Gast Gast
 2008-04-09 21:00
#108181 #108181
Hallo liebe Community ich möchte ein Datei handl erstellen und zwar möchte ich eine DATEI einlesen. Ich möchte jetzt eine while schleife erstellen die (wenn die datei nicht vorhanden ist) solange eine input aufforderung stellt bis es sie sozusagen gibt.
wie löse ich das einfach überprüfung ist ja kein problem wie hier unten:

open(DAT, "<$file") || die "Die Datei wurde nicht gefunden\n";
Gast Gast
 2008-04-09 22:02
#108185 #108185
hab es mittlerweile herausbekommen

while (!-e "csv/".$file){}


was macht das -e genau in perl? öffnet dies eine datei? oder wie definiert man das?
Gast Gast
 2008-04-09 22:26
#108187 #108187
"-e" schaut ob die Datei existiert. Perl fragt beim OS nach, ob es eine Datei mit dem Pfad gibt. Und gibt "true" zurück wenn sie existiert und "false" wenn nicht.
betterworld
 2008-04-10 04:45
#108196 #108196
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
Wenn Du die Datei sowieso oeffnen moechtest, kannst Du auch open zum Ueberpruefen der Existenz nehmen:

Code: (dl )
1
2
3
4
5
6
7
8
9
while (1) {
my $fh;
my $dateiname = eingabe();
if (open $fh, '<', $dateiname) {
last;
} else {
warn "Kann $dateiname nicht oeffnen: $!\n";
}
}


Hierbei wird solange Eingabe gefordert, bis die Datei geoeffnet werden kann. Fehler beim Oeffnen koennen natuerlich auch an anderen Sachen als Nichtexistenz liegen. Das koennte man mit dem Modul Errno ueberpruefen, wenn man will.
Ich versuche eigentlich immer solche Sachen wie "erst -e, dann open" zu vermeiden, weil sich zwischen den beiden Calls noch etwas aendern koennte (Stichwort Race Condition).

Ich habe oben auch gleich ein Wiki:lexikalisches Dateihandle benutzt, das wird allgemein als schoener anerkannt.
<< >> 4 Einträge, 1 Seite



View all threads created 2008-04-09 21:00.