Thread Testen, ob Textdatei bereits existiert --> möglich?
(6 answers)
Opened by Dingels at 2008-11-29 23:25 Dingels+2008-11-29 23:17:11-- Was soll das denn? Abgesehen davon, dass es schrecklich redundant und ineffizient ist, ist es auch noch fehleranfällig. Niemand zwingt Dich, Daten in einem String zu speichern, wenn Du eigentlich ein Array haben willst. Und wenn Du schon Dateinamen in einem String aneinanderhängst, was eigentlich niemals nötig sein sollte, dann ist das Leerzeichen kein gutes Trennzeichen, da es auch mal in einem Dateinamen vorkommen könnte Also besser so: Code (perl): (dl
)
1 2 3 4 my @dateinamen; while(my $datei = readdir(INPUT)) { push @dateinamen, $datei; } Quote Hmm, davon, dass man dieselbe Abfrage mehrmals in einer Schleife durchführt, von deren Interationsvariablen sie völlig unabhängig ist, wird das Resultat nicht unbedingt besser. Und Du prüfst natürlich nicht, ob die Datei mit dem Namen haeufigkeiten.txt in dem Verzeichnis vorhanden ist, in dem das Skript liegt, sondern ob sie im aktuellen Arbeitsverzeichnis vorhanden ist. Die ganzen Iterationen in Deinem Skript erfüllen keinen erkennbaren Zweck! Um aber auf das eigentliche Problem zurückzukommen: Du solltest erstmal das Verzeichnis bestimmen, in dem Dein Skript wohnt und dann auf die Existenz der Datei prüfen. Da ersteres tatsächlich nicht ganz trivial ist, nimmt man am besten das Standardmodul FindBin dafür her: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 use strict; use warnings; use FindBin; use File::Spec::Functions; my $haeufigkeiten = catfile($FindBin::Bin, 'haeufigkeiten.txt'); if (-e $haeufigkeiten) { print "$haeufigkeiten gibt's schon\n" # lies die Datei } else { print "$haeufigkeiten haben wir hier nicht\n" # erzeuge die Datei } When C++ is your hammer, every problem looks like your thumb.
|