Thread SpamFilter Email in Perl "simulieren"
(9 answers)
Opened by J0ke at 2016-11-15 10:36
Sooooo...
ich hab jetzt mal n bisschen rumgebastelt und bin noch auf den "index" Befehl gestoßen. Mein Code sieht jetzt volgendermaßen aus: 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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 #!/usr/bin/perl use 5.010; use strict; use warnings; use Data::Dumper; my $ueb = 0; my $anz = 0; my $zeile = 0; my $spam; #Filter-Schlagwörter Zeilenweise in ein Array einlesen ('<' NUR lesen) open (FILTER, '<',"Filter.txt") or die $!; my @filter = <FILTER>; #Per chomp werden die Zeilenumbrüche entfernt chomp @filter; close (FILTER); #print @filter; #Mail.txt öffnen und Zeilenweise in ein Array einlesen ('<' NUR lesen) open (MAIL, '<', "Email.txt") or die $!; my @mail = <MAIL>; close (MAIL); #print "@mail\n"; #Schleife erstellen, bei jedem Druchgang wird ein neuer $spam aus dem Array @filter gewählt foreach $spam (@filter) { $zeile=0; $anz++; #print "|$spam| \n"; foreach my $mail (@mail){ $zeile++; my $position = index($mail, $spam); if ($position != -1){ #Ausgabe der Position etc print "$spam Zeile: $zeile Position: "; print "$position \n"; $ueb++; } } } #Ausgabe print "Es wurden $anz Filter verwendet und $ueb Uebereinstimmungen gefunden\n"; Ausgabe: gregorio mutah Zeile: 3 Position: 139 gregorio mutah Zeile: 18 Position: 0 gregorio mutah Zeile: 23 Position: 35 bgonzalez@cristalsevres.com Zeile: 3 Position: 63 bgonzalez@cristalsevres.com Zeile: 10 Position: 0 vsuarezpromos.com Zeile: 3 Position: 0 vsuarezpromos.com Zeile: 19 Position: 0 Es wurden 190 Filter verwendet und 7 Uebereinstimmungen gefunden Nochmal danke an euch :) Tie etc habe ich erstmal rausgelassen, da ich glaube, dass das vom Speicher her nicht nötig ist, werde es aber sonst auch nochmal austesten.. Last edited: 2016-11-23 13:52:10 +0100 (CET) |