Thread Probleme mit dem Speichern von Dateinamen
(8 answers)
Opened by Timo_81 at 2007-01-20 17:58
Für sowas sind Hashes genau gedacht:
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 my %saetze_gefunden; for my $file (@textdateien) { # gesammte Datei einlesen local $/=''; open (DATEI, '<', $file) or die "Konnte '$file' nicht öffnen ($!)\n"; # Datei in sätze zerlegen (my $daten=<DATEI>)=~s/[\r\n]//gs; my @saetze_datei=split(/(?<=[\.!?])\s*/,$daten); close(DATEI); # Alle Sätze durchgehen und dem Hash als Schüssel werwenden. # Als Wert ist ein Array enthalten, das die Dateinamen aufnimmt. push(@{$saetze_gefunden{$satz}},$file) for my $satz (@saetze_datei); } open (REFDAT,'>','verweis.txt') or die "Konnte 'verweis.txt' nicht öffnen ($!)\n"; open (OUTDAT,'>','out.txt') or die "Konnte 'out.txt' nicht öffnen ($!)\n"; # Den Hash durchgehen und die Werte in die Dateien schreiben. my $cnt=0; for my $satz (keys(%saetze_gefunden)) { print OUTDAT "$cnt:$satz\n"; print REFDAT "$cnt:".join(',',@{$saetze_gefunden{$satz}})."\n"; $cnt++; } close (OUTDAT); close (REFDAT); EDIT: die zeile Code: (dl
)
my @saetze_datei=split(/(?<=[\.!?])\s*/,<DATEI>); <!--EDIT|topeg|1169317516--> |