#!/usr/bin/perl use warnings; ########################### #Suche -scheint zu funktionieren- ########################### my $i=0; #Index in der Dateiliste my @tonesarray=(); #Hier sind die Dateien gespeichert my @silbenarray=(); #Hier sind die Dateien gespeichert my $k=0; #Dateiposition Tones & Silben my $silbendateien; my $textpos=0; my @temp=(); my $anzahl=0; my @gefundene_dateien=(); my @toneszeit=(); my @toneswert=(); my $tones_datei; my $syl_datei; my @tonesinhalt=(); my @silbenzeit=(); my @silbenwert=(); my @silbeninhalt=(); my $tonespos=0; my $silbenpos=0; my $zeile=0; my $gesamttones=0; my $gesamtsilben=0; my $eingabe=; chomp($eingabe); my $datei; my $gefunden=0; open (TXT,">satz_suche_ergebnis.txt") or die "$!\n"; print TXT "#####################################\n"; print TXT "#Ergebnis der manuellen Suche #\n"; print TXT "####################################\n"; print TXT "\n"; print TXT "\n"; print TXT "[Gesuchter Ausdruck:]\n"; print TXT "$eingabe\n\n"; print TXT "[Gefunden in :]\n"; close (TXT); open (DATEI,">satz_suche.txt") or die "$!"; close (DATEI); foreach $datei(glob "*dlf*.txt") { open TXT,$datei; while () { local $/=undef; if (m/$eingabe/gi) { open (DAT_TXT,">>satz_suche_ergebnis.txt") or die "$!\n"; open (DATEI,">>satz_suche.txt") or die "$!"; print DAT_TXT "\t$datei\n"; print DATEI "$datei\n"; $gefunden++; } } close (TXT); close (DAT_TXT); close (DATEI); } if ($gefunden>0) { open (DATEI,"satz_suche.txt" or die "Fehler: Datei 'satz_suche.txt' konnte nicht geöffnet werden.\nGrund $!"); while() { print "$_\n"; s/txt/tones/g; push(@tonesarray,$_); s/tones/syllables/g; push(@silbenarray,$_); chomp(@silbenarray); } ################################################## #Ab Start gegebenfalls noch Anpassungen vornehmen ################################################# start: if ($textpos>$anzahl) { exit; } $silbendateien=scalar(@silbenarray); if ($i <= $silbendateien) { #chomp($tones_datei); open (TONES, "<", $tonesarray[$k]) or die "Fehler: Datei '".$tonesarray[$k]."' konnte nicht geöffnet werden\nGrund:$!"; while() { chomp($_); $zeile++; if ($zeile<=8) #Ignoriere die ersten acht Zeilen { next; } else { @tonesinhalt=split /\s+/; push(@toneszeit,$tonesinhalt[1]);#Toneszeiten werden gespeichert push(@toneswert,$tonesinhalt[3]);#Toneswert wird gespeichert } } close(TONES); open (SILBEN,"<", $silbenarray[$k]) or die or die "Fehler: Datei '".$syl_datei."' konnte nicht geöffnet werden.\nGrund $!"; while() { #print "Öffne Datei $silben_array[$i]\n"; s/#//g; @silbeninhalt=split /\s+/; push(@silbenzeit,$silbeninhalt[0]);#Silbenzeiten werden gespeichert push(@silbenwert,$silbeninhalt[2]);#Silbenwert wird gespeichert } close(SILBEN); my ($pfad,$dateiname) = $tonesarray[$i] =~m|^(.*?/)([^/]+)$|; my ($pfad2,$dateiname2) = $silbenarray[$i] =~m|^(.*?/)([^/]+)$|; open (FILE,">>"."satz_suche_ergebnis.txt") or die "Fehler: Datei 'satz_suche_ergebnis.txt' konnte nicht geöffnet werden.\nGrund $!"; print"\n"; print"\n"; print FILE "----------------------------------------\n"; print FILE "Analysierte Tonesdatei: ". "$tonesarray[$k]\n"; print FILE "Analysierte Silbendatei: "."$silbenarray[$k]\n"; print FILE "----------------------------------------\n\n"; print FILE "[Beginn der gesamten Nachricht]\n\n"; $gesamtsilben=scalar(@silbenzeit); while ($silbenpos < $gesamtsilben) #Solange nicht das Ende der aktuellen Datei erreicht ist. { if ($toneszeit[$tonespos] > $silbenzeit[$silbenpos]) { print FILE "Silbe:$silbenwert[$silbenpos] ". "/--\n"; $silbenpos++; } elsif ($toneszeit[$tonespos] < $silbenzeit[$silbenpos]) { print FILE "Silbe: $silbenwert[$silbenpos] ". "/$toneswert[$tonespos]\n"; $silbenpos++; $tonespos++; } elsif ($toneszeit[$tonespos] == $silbenzeit[$silbenpos]) { print FILE "Silbe: $silbenwert[$silbenpos] ". "/$toneswert[$tonespos]\n"; $silbenpos++; $tonespos++; } } $textpos++; $k++; $i++; print FILE "[Nachrichtenende]\n\n"; print "Anzahl".$anzahl."/".$textpos."\n"; @toneszeit=(); @toneswert=(); @tonesinhalt=(); @silbenzeit=(); @silbenwert=(); @silbeninhalt=(); $tonespos=0; $silbenpos=0; $zeile=0; $gesamttones=0; $gesamtsilben=0; goto "start"; } else { exit; } } else { print "Suchausrduck wurde nicht gefunden\n"; exit; }