Hi ,
ich habe mit meinem Programm mehrere Dateien aus einem Array geöffnet.
Es handelt sich um Texdateien.Nun möchte ich die Sätze einzeln extrahieren
und in eine Datein mit Nummerierung schreiben (Das geht auch).
Nun möchte ich auch eine weitere Datei erstellen ,die die Dateien aus denen
die Sätze extrahiert wurden ,gespeichert werden, um sie später wieder zuordnen zu können.
Leider hat @Liste die eigentlich die Dateinamen zu den Sätzen speichern soll viel zu viele Einträge .
Hier die relevanten Codeausschnitte:
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
my $data; # Arbeitsvariable
my $datei;
for my $file (@textdateien)
{
open DAT, $file;
push(@liste,$file); #SPEICHER DIE DATEI IN EIN ARRAY
for my $line (<DAT>)
{
chomp $line; # Den Zeilenumbruch am Ende entfernen
$data .= $line; # und diese Zeile anhängen,falls es über mehrere Zeilen geht
push(@liste,$file);# das führt leider zu zuvielen Dateinamen!
my @saetze = split/(?<=[\.!?])\s*/, $data; #Filtert Sätze raus
open DATEI, ">out.txt"; # Die Ausgabedatei
$counter = 0; # counter initialisieren
for (@saetze)
{
print DATEI $counter++, "; $_ \n"; #Enthält die ID und die Sätze
}
close DATEI;
close DAT;
}
################################################################
#Hier sollen nun die Dateinamen zu den Sätzen gespeichert werden
################################################################
}
open DATEI ,">verweis.txt"; #Enthält die ID und die Dateinamen
foreach(@liste) #KOMMT LEIDER Mist RAUS
{
$counter2++;
print DATEI $counter2.";"."$_\n";
}
close DATEI;
Ich bin mit meinem Latein am Ende!
Hoffe jemand kann mir helfen
Gruß
Timo