Thread Dir ohne Unterordner in .txt Datei u.ä.. Wie?
(60 answers)
Opened by stormy2211 at 2007-11-02 21:31 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 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 #!C:\\Perl\bin\perl.exe use strict; use warnings; my $test=0; #mit der Zahl wird die Anzahl der Dateien gelesen my @Verzeichnis; opendir(Freunde, 'C://Freunde') or die "Konnte Ordner nicht öffnen ($!)\n"; while(my $Filename=readdir(Freunde)) {next if($Filename eq '.' or $Filename eq '..'); if(-f 'C://Freunde/'.$Filename) {$test=$test+1; push(@Verzeichnis,$Filename); } } closedir(Freunde); my @Namensliste; for my $Filename(@Verzeichnis) { $Filename=~/^(.+?)@/s; push(@Namensliste,$1); } open(SPEICHERN,'>','C://Verzeichnis.txt') or die "Konnte Verzeichnis nicht Speichern ($!)\n"; print SPEICHERN join("\n",@Verzeichnis); close(SPEICHERN); open(SPEICHERN2,'>','C://Namensliste.txt') or die "Konnte Titelliste nicht Speichern ($!)\n"; print SPEICHERN2 join("\n",@Namensliste); close(SPEICHERN2); #des darüber stehende ab hier will ich nicht mehr verändern, des funzt ja alles dank hilfe =) print "$test\n$Verzeichnis[03]\n$Namensliste[03]\n"; #übereinstimmung von verz-->namen und wieviele .txt es gibt wird angezeigt my @inhalt; my $Zahl; for (my $s=00;$s<=$test;$s++) #hier sage ich er soll alle Dateien der Reihe nach öffnen bis eben die letze Datei erledigt ist { #open open (LESEN,"<C:/Freunde/$Verzeichnis[$s]"); my @inhalt=<LESEN>; my $Data=join(' ', @inhalt); #hier wird inhalt in eine Zeile gestopft #also slurpen soweit ich verstanden habe for my $Name ($Namensliste[$s]) { #for my bracket #falls Name in Datei vorhanden, egal ob/mayer oder Mayer #dann wird die Zahl um eins erhöht, falls es 2x vorkommt #trotzdem nur einmal da if Bedinung 1x erfüllt und es #dann gleich weiter geht if($Data=~/$Name/i) { #if bracket $Zahl++; } #if bracket } #for my bracket close(LESEN) } #close print "$Zahl\n$test\n"; <stdin> #hier lasse ich mir eben ausgeben in wievielen #Textdateien der Name wo im Namen der Datei stand #auch im Dateiinhalt steht und wieviele Dateien #es insgesamt waren. Meldung kommt für Line: 45,46,58 Das ist das fertige Ergebnis =)))) Wollte mich an dieser Stelle auch mich bei allen Bedanken die mich unterstützt haben und bestimmte Befehle, Begriffe einen Perl u. Progammier Anfänger nicht nur versucht haben sondern es auch geschafft haben zu erklären. Seid ne echt geile Community hier, hat mein Kumpel recht gehabt. =D mfg stormy und nen verdammt schönen Abend an alle *dieweltumarm* http://img401.imageshack.us/img401/4576/69809978zz...
Ich sag mal lieber nicht bei welchem Board diese Meldung kam http://smiliestation.de/smileys/Gemischt/132.gif |