Thread Dateien im Verzeichniss nach eingegebenen Wörtern durchsuchen
(5 answers)
Opened by genja at 2011-06-26 20:57
Hallo alle zusammen,
ich bin eine Anfängerin in Perl und muss ein Programm schreiben, das für mich ziemlich schwierig ist. Kurz zu dem Programm: es muss nach einer Eingabe aus mehreren Wörtern gefragt werden, die Wörtern werden in array gespeichert. Dann sollen die Dateien aus einem Verzeichniss nach Wörtern durchgesucht werden und wenn alle eingegebene Wörter in einer Datei gefunden werden, dann soll ausgegeben werden in welcher Datei gefunden. Ich habe viel nachgelesen und gesucht und dann auf irgendeiner Seite die Idee genommen hash referenzen zu benutzen und ein Programm gebastellt, das nach einem Wort suchen kann, aber bei zwei Wörtern funktioniert es schon nicht, vielleicht könnte jemand mir dabei helfen und es erweitern, so dass die Suche nach zwei Wörtern auch möglich ist? Hier das Programm: 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 my %index; my @array; my @files = <Dokumente/*>; foreach $file (@files) { open FILE_HANDLE, "$file" or die "$!\n"; foreach $line (<FILE_HANDLE>) { $line =~ s/ü/ue/g; $line =~ s/Ü/ue/g; $line =~ s/ä/ae/g; $line =~ s/Ä/ae/g; $line =~ s/ö/oe/g; $line =~ s/Ö/oe/g; $line =~ s/ß/ss/g; @array = split(/\W/, $line); foreach $wd (@array) { if($wd =~ /[A-Za-z]/) { $wd = lc($wd); $index{$wd}->{$file}++; } } } close FILE_HANDLE; } print "Nach welchem Wort soll gesucht werden?\n"; my $input =<STDIN>; chomp $input; $input =~ s/ü/ue/g; $input =~ s/Ü/ue/g; $input =~ s/ä/ae/g; $input =~ s/Ä/ae/g; $input =~ s/ö/oe/g; $input =~ s/Ö/oe/g; $input =~ s/ß/ss/g; $wd = lc $input; if (exists $index{$wd}) { print "Das Wort wurde gefunden!\n"; $files = $index{$wd}; foreach $file(keys %$files) { print "Das Wort '$input' kommt in Datei '$file' $$files{$file} mal vor.\n"; } } else { print "Das Wort wurde nicht gefunden!\n"; } Vielen herzlichen Dank im voraus! genja modedit Edited by renee: perl-Tags eingefügt Last edited: 2011-06-26 21:06:34 +0200 (CEST) |