perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 23
Click for quality!




10.02.2012 / 19:49

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragString aus Text suchen und in Feld schreiben
Seitenanfang
hallo,

ich habe eine Datei mit vielen Quelltexten von Emails und ich möchte gerne alle Mails heraussuchen und in ein Feld schreiben, die den String "To: " vorangestellt haben. Also nicht komplett alle Mailadressen, sondern nur die "Destination"-Mailadressen. Die einzelnen Mails habe ich schon in ein anderes Feld geschrieben (@mail).

Der Anfang ist mir klar: Alle Feldindexe durchgehen, aber wie funktioniert das dann mit dem Heraussuchen von nur mit "to: " beginnenden Mails.

Also for-Schleife:


for(my $i = 0; $i < $#mail; $i++){

... so und dann ?
}

hoffe, dass mir jemand helfen kann.

Danke im Voraus :)

Datum: 01.11.2004-22:13

Beitragre: String aus Text suchen und in Feld schreiben
Seitenanfang
Hallo,

ich hab das mal so

if ($line =~ /To: (.+)<(.+)>/i) {
dest_mail_addr=$2;
}

gelöst und es hat funktioniert.

Ciao
Ingo

Datum: 02.11.2004-07:48

Beitragre: String aus Text suchen und in Feld schreiben
Seitenanfang
Danke für deine Antwort.
Ich habe jetzt das Problem, dass ich garkeine Zeilen in eine Variable (wie du verwendet hast: $line) bekomme.

Die Mails sind in einem Feld abgelegt (@mail).
Wie durchlaufe ich die einzelnen Feldelemente jetzt zeilenweise, um deinen Vegleich zu machen ??

while(<@mail[$i]>) geht ja nicht.

Gruss und danke im Voraus

Datum: 03.11.2004-18:31

Beitragre: String aus Text suchen und in Feld schreiben
Seitenanfang
my $line;

foreach $line (@mail) {
if ($line =~ /To: (.+)<(.+)>/i) {
dest_mail_addr=$2;
}
}

Datum: 03.11.2004-22:07

Beitragre: String aus Text suchen und in Feld schreiben
Seitenanfang
Geht bei mir irgendwie nicht, 3 Fehler.

Wo werden denn da die jeweiligen feldelemente angesprochen, dass war ja mein Problem. dann einfach aus dem @mail ein @mail[$i] machen ? Naja geht auch nicht. Mhmm :(

Datum: 03.11.2004-22:27

Beitragre: String aus Text suchen und in Feld schreiben
Seitenanfang
Hallo,

Dein Problem kann ich nicht analysieren, wenn Du nicht die Fehlermeldungen mitteilst. Das hier ist der Blick in die Glaskugel.


my $line;

foreach $line (@mail) {
if ($line =~ /To: (.+)<(.+)>/i) {
dest_mail_addr=$2;
last;
}
}

Die foreach-Schleife teilt das Array @mail in die einzelnen Elemente auf, die ja die Zeilen der Mail enthalten. Dann wird jede Zeile daraufhin untersucht, ob sie eine Zeile nach dem Muster:

To: John Do <john@do.xx>

enthält. Das, was in den spitzen Klammern steht, ist das, was uns interessiert. Einzig bei mehrfach weitergeleiteten Mails gibt es mehrere Treffer. Für nur den ersten Treffer, der ja im Mailheader steht und wichtig ist, für den könnte man dann die Schleife mittels last verlassen - so wie es jetzt oben eingetragen ist.
Was könnte falsch laufen? @mail enthält gar keine oder nicht die erwarteten Daten. Dann gibt es keinen Treffer und die weitere Verarbeitung geht baden. Das Codeschnipselchen kann - so denke ich - keine Fehler erzeugen.

Datum: 04.11.2004-08:06

-






-
-