Thread Dir ohne Unterordner in .txt Datei u.ä.. Wie?
(60 answers)
Opened by stormy2211 at 2007-11-02 21:31
Ein paar Verbesserungsvorschläge und Anmerkungen:
Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 #!C:\\Perl\bin\perl.exe # Verhintert Vertipper, fehlerhafte Definitionen und noch so manches Ärgernis :) ################### use strict; use warnings; ################### # mit Windowspfaden kenne ich mich nicht so aus, # aber Perl wandelt die Unixspezifische Schreibweise normalerweise passend um. opendir(Musik, 'C://Dokumente und Einstellungen/Stormy/Eigene Dateien/Eigene Musik'); #ist mein Musikverzeichnis was ich hier öffne my @Liederliste=readdir Musik; #hier speichere ich das Verzeichnis als #.txt Datei in die @Liederliste closedir(Musik); #$Anzahllieder=@Liederliste; # Wenn ein Array skalar abgefragt wird, wird nur die Anzahl der Eintträge übergeben #hier zähle ich die Anzahl meiner Lieder durch # das funktioniert so leider nicht ################################## #for ($s=0;$s<=$Anzahllieder;$s=$s+1) #Angabe wieviele Titel es der Liste hinzufügen soll #{$Titel=index($Liederliste[$s],"@");push(@Titelliste,$Titel);} #Befehl dass nur die einzelnen Werte der Liste bis zum "@"-Zeichen gelesen #werden und in einer extra Liste abgespeichert werden ################################### # Index lifert die Position eines Stinges innerhalb eines anderen. # @Titelliste wird bei jedem Durchlauf neu initialisiert # und außerhalb der Schleife ist es unbekannt. # Wenn man ein ganzes Array durch gehen will, so kann man das auch anders schreiben: # for my $filename (@Liederliste) # Außerdem "$s=$s+1" kann man auch so schreiben "$s++" # weiterhin müßte es "$s<$Anzahllieder" heißen, denn in "$Anzahllieder" steht die Anzahl der Einträge, # aber im Array wird von 0 an gezählt und damit ist der letzte Eintrag "$Anzahllieder-1" # so würde ich es machen: my @Titelliste; # das Array vor der Scheife definieren! for my $Filename (@Liederliste) { # siehe Reguläre Ausdrücke $Filename=~/^(.+?)@/s; push(@Titelliste,$1); } open(SPEICHERN,'>','C://Meine Verwaltung von Multimedia/Musik/Liederliste.txt'); print SPEICHERN join("\n",@Liederliste); close(SPEICHERN); open(SPEICHERN2,'>','C://Meine Verwaltung von Multimedia/Musik/Titelliste.txt'); print SPEICHERN2 join("\n",@Titelliste); close(SPEICHERN2); #Speicherung der 2 Listen in meinem Verwaltungsordner. # Leere Zeilen helfen den Code etwas zu strukturieren. # Einrücken genauso :) Ich habe es nicht getestet. Es können noch Schreibfehler drin sein... ;-) |