Ich habe ein Skript geschrieben mit dem man Worte /Sätze/Teilsätze
aus einem Array aus Textdatein herausfinden kann.
Sprich, gibt einen Satz oder ein Wort ein und es wird angezeigt ob es in einem
der Textdateien vorkommt. (Wird später weiterverarbeitet)
Es klappt auch ziemlich gut.
Wenn ich aber nach Sätzen suchen will die auf der Konsole abgebrochen werden findet er sie nicht (obwohl ich weiß dass diese von mir gewählten Beispielsätze vorkommen.)
Beispiel:
Ein derartiger Frieden w"are nach seinen Worten instabil.
wird gefunden ("a bedeutet hier ä)
Das vor zwei Jahren ge"anderte Asylrecht steht seit heute auf dem Pr"ufstand des Bundesverfassungsgerichts in Karlsruhe.
wird nicht gefunden obwohl es so drinsteht.
Gechompt habe ich auch hier mein Codeausschnitt:
Variablen sind definiert am Anfang
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
@textkorpora=glob('dlf*.txt');
$anzahl=scalar(@textkorpora);
$suchstring=<STDIN>;
chomp($suchstring);
open(DATEI,'>',"satz_suche.txt");
close(DATEI);
open(FILE,'>',"satz_suche_ergebnis.txt");
print FILE "-------------------------------------\n";
print FILE "[Suchanfrage]\n";
print FILE "$suchstring\n";
print FILE "-------------------------------------\n\n";
print FILE "[Lokalisiert in den Dateien]\n\n";
close(FILE);
while ($textpos <= $anzahl)
{
open(TEXTDAT,'<',@textkorpora[$textpos]);
while(<TEXTDAT>)
{
chomp($_);
$korpustext=$korpustext.$_;
}
close(TEXTDAT);
if($korpustext =~ /$suchstring/g)
{
open(DATEI,'>>',"satz_suche.txt");
print DATEI "@textkorpora[$textpos]\n";
close(DATEI);
open(FILE,'>>',"satz_suche_ergebnis.txt");
print FILE "@textkorpora[$textpos]\n";
$textpos++;
$gefunden++;
$korpustext="";
close(FILE);
}
else
{
$textpos++;
$korpustext="";
}
}
if ($gefunden==0)
{
open(FILE,'>>',"satz_suche_ergebnis.txt");
print FILE "Fehler: ~Benutzereingabe wurde nicht gefunden.~\n";
close(FILE);
print "Ausdruck/".$suchstring. "/\nwurde nicht gefunden.\n";
}
else
{
open(FILE,'<',"satz_suche.txt");
while(<FILE>)
{
chomp($_);
s/txt/tones/g;
push(@tonesarray,$_);
s/tones/syllables/g;
push(@silbenarray,$_);
}
close(FILE);
Findet ihr einen Fehler?
Gruß
Timo