Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]5944[/thread]

bestimmtes Vezeichnis auslesen



<< >> 5 Einträge, 1 Seite
Arasiel
 2003-12-03 12:00
#74138 #74138
User since
2003-11-12
39 Artikel
BenutzerIn
[default_avatar]
Hallo,

ich möchte alle Dateien eines bestimmten Verzeichnisses auslesen.
Jede dieser Dateien wird dann zeilenweise verarbeitet...
Mein Perlskript wird unter c:\ ausgeführt, aber das Verzeichnis befindet sich unter d:\dateien\Verzeichnis .
Wie geht das?

MfG,

Markus

P.S. Besser wäre es natürlich, wenn Perl das Verzeichnis selber findet. Die Dateien haben alle die Endung .short. Ansonsten gibt es keine *.short-Dateien. Nur in diesem Verzeichnis.
Crian
 2003-12-03 12:19
#74139 #74139
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
entweder mit opendir/readdir (siehe perldoc -f opendir bzw. perldoc -f readdir) oder mit File::Find (siehe perldoc File::Find) oder mit glob (...perldoc -f glob)

Letzteres etwa so:

Code: (dl )
my @files = glob('d:\dateien\Verzeichnis\*.short');


Edit: Zum Selbstfinden: Dann müsste das Programm immer wieder einen ev. seeehr langen Baum an Verzeichnissen durchwandern... kannst ja mal eine Suche über alle Dateien nach *.short laufen lassen, dann siehst Du, wie lange das dauert.\n\n

<!--EDIT|Crian|1070446825-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Arasiel
 2003-12-03 12:41
#74140 #74140
User since
2003-11-12
39 Artikel
BenutzerIn
[default_avatar]
Hat sehr gut geklappt!

Vielen Dank!

Gruss,

Markus
Strat
 2003-12-03 16:05
#74141 #74141
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
unter windows gibt es auch das Problem mit dem selberfinden, dass man herausfinden muss, welche Laufwerksbuchstaben auf dem System vorhanden sind und von welchem Typ sie sind. Es ist bei sowas sicher nicht gut, wenn man da unabsichtlich auf ein Diskettenlaufwerk oder ein CD-Rom zugreift, das leer ist.
Auf meiner HP gibt es unter Tips&Tricks -> Win32 ein Beispiel, wie man das herausfinden kann...
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Crian
 2003-12-03 17:28
#74142 #74142
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Selbst wenn man Wechselmedienlaufwerke (Diskette, CD-Roms, DVD's, USB-Sticks, ...) ausschließen kann, dauert das Durchsuchen der lokalen Festplatten alleine doch schon viel zu lange.
Zum Thema, es wäre das einzige Verzeichnis, das *.short-Dateien enthielte: Was ist, wenn Du mal ein Backup anlegst, was ist, wenn Du irgendwann irgendein Programm installierst, das zufällig auch diese Endungen verwendet, ... Ich plädiere dafür, das Verzeichnis anzugeben, oder wenigstens den Suchstartpunkt. Wenn Du weißt, dass das Verzeichnis garantiert das einzige ist, das solche Dateien im Zweig e:\entwicklung\xyz\ enthält, bist Du viel schneller mit der Suche.

Warum willst Du überhaupt suchen, ändert sich das Verzeichnis?
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
<< >> 5 Einträge, 1 Seite



View all threads created 2003-12-03 12:00.