#!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 :)