Readers: 25
![]() |
|< 1 2 3 4 5 ... 7 >| | ![]() |
61 entries, 7 pages |
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
#!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 $Zahl; #Die Zahl die erhöht werden soll, sofern in der #Datei Mayer@München.txt der Namen Mayer vorhanden ist(also im Inhalt) #kann sein das eventuell auch /Mayer dran steht. my @inhalt; #ist wo für jede Datei deren Inhalt abgespeichert wird for (my $s=00;$s<=$test;$s++) { open(LESEN,"<","C://Freunde/$Verzeichnis[$s]"); @inhalt=<LESEN>; ########################################## # Hier bräuchte ich jetzt etwas was jede # # Zeile nach $Namensliste[$s] durchsucht # # Das müsste sowohl mayer, Mayer aber # # auch /mayer /Mayer und .mayer .Mayer # # erkennen aber maximal die Zahl nur um # # eins erhöhen auch wenn es ein paar mal # # vorkommt, also i-wie das wenn mehr wie # # 2 gefunden trotzdem nur $Zahl+1 ist # # und nicht jedesmal wenn es was findet # ########################################## close(LESEN);}
1 2 3 4 5 6 7 8
my $irgend_eine_dateizeile = "Freund Mayer wohnt in blablabla und blablabla hat die telefonnummer blablabla"; my $suchmuster = "Mayer"; if ($irgend_eine_dateizeile =~ m/$suchmuster/i){ #ein zähler wird erhöht: $Zahl++; }
$irgend_eine_dateizeile =~ m/$suchmuster/i
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
my $Zahl; #Die Zahl die erhöht werden soll, sofern in der #Datei Mayer@München.txt der Namen Mayer vorhanden ist(also im Inhalt) #kann sein das eventuell auch /Mayer dran steht. for my $Dateiname (@Verzeichnis) { open(LESEN,"<","C://Freunde/$Dateiname"); #ist wo für jede Datei deren Inhalt abgespeichert wird my @inhalt=<LESEN>; # inhalt zusammenfügen: my $Data=join(' ', @inhalt); for my $Name (@Namensliste) { # abfrage starten: # finde mit Regexp den Inhalt von "$Name" im String "$Data". # "i" heißt arbeite dabei Caseinsensitiv # Siege Doku zu Regexp. if($Data=~/$Name/i) { print "$Name in $Dateiname gefunden!\n"; # alles weiter liegt bei dir :-) } } close(LESEN); }
topeg+2007-11-03 14:50:25--
Code (perl): (dl )1 2 3 4 5 6 7#... open(LESEN,"<","C://Freunde/$Dateiname"); #ist wo für jede Datei deren Inhalt abgespeichert wird my @inhalt=<LESEN>; # inhalt zusammenfügen: my $Data=join(' ', @inhalt); }
1 2
# slurpe Inhalt der Datei my $Data = do{ local (@ARGV,$/) = "C:/Freunde/$Dateiname"; <>};
1 2
# slurpe Inhalt der Datei my $Data = do{ local (@ARGV,$/) = "C:/Freunde/$Dateiname"; <>};
1
2
3
4
5
6
7
8
9
10
11
C:\>more text.txt
hallo
dies
ist ein
test
C:\>skript.pl text.txt
hallo
dies
ist ein
test
![]() |
|< 1 2 3 4 5 ... 7 >| | ![]() |
61 entries, 7 pages |