So, nach einigem hin und her habe ich mit der Ausgabe der Textdatei doch so meine Probleme.
Denn, nachdem das Progi pdftotext.exe die Umwandlung vollzogen hat, sind sämtliche gebrauchten Daten Leerzeichen getrennt.
Wären alle Adressen im selben Aufbau, so wäre ich bereits fertig.
Da aber teilweise Strassennamen mit mehreren Wörtern auch Leerzeichen getrennt sind, oder Firmennamen ebenfalls mit Leerzeichen geschrieben werden, kann man sich vorstellen, welches Durcheinander das bei über 1200 Datensätzen gibt.
I-Punkt setzen dann die Doktoren in den Datensätzen, die teilweise mit mehreren Kürzeln "daherprahlen".
Nachdem ich mir das File pdftotext genauer angesehen habe, habe ich herausgefunden, dass mit dem richtigen Parameter die Ausgabe so ausgegeben werden kann, dass die Adresse nicht in einer Zeile steht, sondern wie es sich gehört, untereinander.
Beispiel-Ergebnis der Umwandlung ohne extra Parameter (wie im Code benutzt)
QuoteHerr Willi Mustermann 1-Strasse 7 12345 Musterstadt
oder
QuoteFrau Dr. med. dent Willhelmine Musterfrau In der Stadt 7 b 3456 Weil am Rhein
Wünschenswert wäre gewesen:
QuoteHerr;;;;Willi;Mustermann;1-Strasse;7;;12345;Musterstadt;
oder
QuoteFrau;Dr.;med.;dent;Willhelmine;Musterfrau;In der Stadt;7;b;3456;Weil am Rhein;
Das kann meines Wissens aber nicht funktionieren, wenn pdftotext das nicht hergibt.
So, wie gesagt, habe mir das Programm genauer angesehen und einen Schalter gefunden, der mir die Adresse wie folgt ausgibt:
QuoteFirmenname¶
Kontaktmöglichkeiten¶
Deutscher Industrie und Handelskammertag (DIHK)¶
Strasse Gesellschaft Ort und Telefon¶
Hier noch was¶
da noch was¶
noch was, was nicht interessiert¶
Adresse der Firma¶
Vom Briefkopf rechts Zeile 1¶
Vom Briefkopf rechts Zeile 2¶
Vom Briefkopf rechts Zeile 3¶
Vom Briefkopf rechts Zeile 4¶
Absendername und -Adresse im Kuvertfenster¶
66663 Merzig¶
Herrn¶
Willi Mustermann¶
1-Strasse 7¶
12345 Musterstadt¶
Die Daten, die ich brauche, fangen also immer bei Zeile 15 an (Fettgedruckt)
Doof, wenn ich ne Zeile mehr habe, wie hier:
QuoteFirmenname¶
Kontaktmöglichkeiten¶
Deutscher Industrie und Handelskammertag (DIHK)¶
Strasse Gesellschaft Ort und Telefon¶
Hier noch was¶
da noch was¶
noch was, was nicht interessiert¶
Adresse der Firma¶
Vom Briefkopf rechts Zeile 1¶
Vom Briefkopf rechts Zeile 2¶
Vom Briefkopf rechts Zeile 3¶
Vom Briefkopf rechts Zeile 4¶
Absendername und -Adresse im Kuvertfenster¶
66663 Merzig¶
Herrn¶
Willi Mustermann¶
c/o Wilhelmine Musterfrau¶
1-Strasse 7¶
12345 Musterstadt¶
Die nächste Zeile, die immer, also bei jeder Datei folgt, ist dieser Eintrag:
weil diese auch im Briefkopf rechts steht, quasi als Zeile 5. Dieser Eintrag ist also immer gleich!
Wie kann ich nun meinem Perl-Scribt sagen, es soll nicht die Zeile 2 lesen, sondern lesen ab Zeile 15 bis eine Zeile anfängt mit "Telefon: 0176123456789" ???
Sorry, wenn ich die Community wieder bemühen muss... :(
Ich hänge hier seit gestern morgen mit rum, und bekomme es nicht hin...
Danke
hier nochmal der bisherige Code, damit ihr nicht suchen müsst (mit neuem Parameter für pdftotxt.exe):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#! /usr/bin/env perl
use strict;
use warnings;
my $outfile = 'Adressen.txt';
open my $OUTH, '>>', $outfile or die "open($outfile, w+) failed: $!";
for my $i ( 1 .. 1250 ) {
my $pdffile = sprintf "%01d.pdf", $i;
my $txtfile = sprintf "%01d.txt", $i;
my $prog = "pdftotext.exe -f 1 -raw $pdffile $txtfile";
system( $prog ) == 0 or next; # bei Fehler weiter mit der nächsten Datei
open my $INH, '<', $txtfile or die "open($txtfile,ro) failed: $!";
( undef, my $address ) = <$INH>; # zweimal lesen; erste "Zeile" ignorieren
print $OUTH $address;
close $INH;
}
close $OUTH or die "close($outfile) failed: $!";
Alter Mann ist kein D-Zug... :D