AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Suceh nach MailAdressen in Strings

Ein Thema von Sascha_OW · begonnen am 17. Nov 2005 · letzter Beitrag vom 18. Nov 2005
Antwort Antwort
Sascha_OW

Registriert seit: 4. Aug 2005
Ort: Owschlag
129 Beiträge
 
Delphi 2005 Professional
 
#1

Suceh nach MailAdressen in Strings

  Alt 17. Nov 2005, 14:48
Hallo,

ich habe folgendes Problem:

ich habe einen String in der ein Text steht in der Mail Adressen drinstehen. Diese Mail Adressen muss ich jetzt rausbekommen.


Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var i,f,x,y :integer;
    zeile, buchstabe:string;
    suchen :boolean;
    wort:string;
begin
   For f := 1 to Memo2.lines.Count -1 do begin
      zeile := Memo2.lines[f];
      For i := 1 to length(zeile) do begin
         buchstabe := zeile[i];
         If buchstabe = '@then begin
           x := i;
         end;
         While suchen do begin
           For y := x downto 1 do begin
              mail(zeile[y]);
              wort := wort + zeile[y];
           end;
         end;
      end;
   end;
end;
Die Function Mail auch noch:
Delphi-Quellcode:
function mail (text:char): boolean;
 var test : integer;
begin
 If ((ord(text) <=122) and (ord(text) >=65)) or (ord(text) = 95) or (ord(text) = 150) or (ord(text) = 45) then begin
    result := true;
  end else result := false;

end;
so weit habe ich das bis jetzt gemacht nur leider geht das nicht, könnt ihr mir sagen wo bei denkt fehler sit
Sascha Schwarz
  Mit Zitat antworten Zitat
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.594 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Suceh nach MailAdressen in Strings

  Alt 17. Nov 2005, 15:19
Delphi-Quellcode:
 While suchen do begin
           For y := x downto 1 do begin
              mail(zeile[y]);
              wort := wort + zeile[y];
           end;
         end;
wenn ich@syconic.org in der liste stehen würde, kommt bei dir nur

@hci raus.

Du musst vom @ (x) ausgehenden nach links und nach rechts bis zum nächsten Leerzeichen
Sven Harazim
--
  Mit Zitat antworten Zitat
Sascha_OW

Registriert seit: 4. Aug 2005
Ort: Owschlag
129 Beiträge
 
Delphi 2005 Professional
 
#3

Re: Suceh nach MailAdressen in Strings

  Alt 17. Nov 2005, 18:15
So jetzt ein neuer Anlauf habe den Quelltext geändertu nd es will trotzdem nicht

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,URLMon, StdCtrls;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Button2: TButton;
    Memo2: TMemo;
    Memo3: TMemo;
    Button3: TButton;
    Edit1: TEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  posi :integer;
implementation

{$R *.dfm}


function mail (text:char): boolean;
 var test : integer;
begin
 If ((ord(text) <=122) and (ord(text) >=65)) or (ord(text) = 95) or (ord(text) = 150) or (ord(text) = 45) then begin
    result := true;
  end else result := false;

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
try
URLDownloadtofile(nil, PChar(Edit1.Text), PChar('c:\hp1.txt'), 0, nil);
  Memo1.Lines.LoadFromFile('c:\hp1.txt') ;
  Button2.click;
  button3.Click;
  DeleteFile('C:\hp1.txt');
except
ShowMessage ('Kann Quelltext der Seite nicht Downloaden');
end;

end;

procedure TForm1.Button2Click(Sender: TObject);
var zeile, buchstabe : string;
    i,f :integer;
begin
  For f := 0 to Memo1.lines.count -1 do begin
    zeile := Memo1.Lines[f];
    For i := 1 to length(Zeile) do begin
      buchstabe := Zeile[i];
      If buchstabe = '@then begin
        Memo2.lines.add (zeile);
      end;
    end;
  end;
end;

procedure TForm1.Button3Click(Sender: TObject);
var i,f,x,a,e,y :integer;
    Zeile, buchstabe, anfang, ende, wort :string;
begin
    a := 0;
    e := 0;
    For f := 0 to Memo2.lines.count -1 do begin
      zeile := Memo2.lines[f];
      For i := 1 to Length(zeile) do begin
        buchstabe := zeile[i];
        If buchstabe = '@then begin
           a := i;
           e := i;
           While (anfang = '>') or (anfang=':') do begin
              a := a -1;
              anfang := zeile[a];
           end;
           While ende = '<do begin
             inc(e);
             ende := zeile[e];
           end;
           For y := a +3 to e -1 do begin
             wort := wort + zeile[y];
           end;
           Memo3.lines.add (wort);
           wort := '';
           anfang := '';
           ende := '';
        end;
      end;
    end;
    end;
Sascha Schwarz
  Mit Zitat antworten Zitat
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.594 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Suceh nach MailAdressen in Strings

  Alt 18. Nov 2005, 05:43
1. Fängt eine Mail-Addresse bei Die mir einem > an und hört mit einem < auf?
2. in der While-Schleife musst Du auf ungleich testen
3. Du musst auf die String-Grenzen prüfen

Delphi-Quellcode:
 While (anfang <> '>') and (anfang <> ':') do
begin
  a := a -1;
  if a < 1 then break;
  anfang := zeile[a];
end;
While ende <> '<do
begin
  inc(e);
  if e >= Length(zeile[e]) then break;
  ende := zeile[e];
end;
Sven Harazim
--
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: Suceh nach MailAdressen in Strings

  Alt 18. Nov 2005, 07:15
Hallo Sascha,

wenn du einen Parser für ein bestimmtes Format einer mail Adresse brauchst, dann solltest du zuerst das Format beschreiben. Wenn du allerdings einen Universal-Parser brauchst, wie er von einem mail harvester benötigt wird um Adress-Datenbanken für Spammer aufzubauen, dann werden es noch erheblich mehr Code Zeilen werden müssen - oder du verwendest regular expressions.

Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat
Sascha_OW

Registriert seit: 4. Aug 2005
Ort: Owschlag
129 Beiträge
 
Delphi 2005 Professional
 
#6

Re: Suceh nach MailAdressen in Strings

  Alt 18. Nov 2005, 10:39
Also das Format ist HTML.

Also warum ich das mache ich klar. Ich habe ein Gästebuch und aus dem will ich die Adressen rausbekommen:

Code entfernt und als Anhang an das Posting gehängt

[edit=Sharky]Siehe nächstes Posting. Mfg, Sharky[/edit]
Angehängte Dateien
Dateityp: txt html-code_141.txt (45,3 KB, 5x aufgerufen)
Sascha Schwarz
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Suceh nach MailAdressen in Strings

  Alt 18. Nov 2005, 11:08
Hai Sascha,

hänge solch langen Code bitte als Anhang an dein Posting. Bei solch überlangen "Dingern" scrollt man sich sonst die Flossen wund.
Danke.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz