Jak wyszukac wszystkie adesy e-mail w tekscie?

0

Czy da sie z podanego tekstu w jakis szybki sposob wydobyc wszystkie adresy e-mail? Bo mam tekst w ktorym adresy e-mail sa w sposob nieregularny umieszone w adresach ogolnych - i nie wiem jak to zrobic zeby je wszystkie wydobyc :/ Czy ktos zna na to jakis szybki sposob?

0

ja nie widzę innego wyjścia jak przeszukanie tekstu w poszukiwaniu '@' a następnie kopiowanie znaków znajdujących się po obu stronach @-y do napotkania spacji...

0

można też użyć wyrażeń regularnych: http://www.regular-expressions.info/delphi.html

0

Zobacz sobie źródło Email Extractor [soczek]

0

Sory ze odswizam temat ale tez mam z tym problem jak skopiowac "@" + wyrazy dolaczone do niej ??

0
Miły napisał(a)

Sory ze odswizam temat ale tez mam z tym problem jak skopiowac "@" + wyrazy dolaczone do niej ??

procedure TForm1.XiButton1Click(Sender: TObject);
var
  PoMalpie, PrzedMalpa, Mail, Tekst: String;
  I: Integer;
begin
  Tekst:= Memo1.Lines.Text;

  while pos('@', Tekst)<>0 do
  begin
    PoMalpie:= Copy( Tekst, pos('@', Tekst)+1, posEx(' ', tekst, pos('@', Tekst))-pos('@', Tekst)-1 );

    PrzedMalpa:='';
    for i:=pos('@', Tekst) downto 1 do
      if Tekst[i] = ' ' then break else PrzedMalpa := Tekst[i] + PrzedMalpa;

    Mail:= PrzedMalpa+PoMalpie;

    Delete(Tekst, 1, posEx(' ', tekst, pos('@', Tekst)));
    Showmessage(Mail);
  end;
end;
0

Dzieki za gotowca, ale czy kompilowales ten projekt bo mi wywala blad przy posEx ;/

0

dodalem to pod impemetation
function PosEx(SubStr, Str: string; PosStart: Integer): Integer;
begin
if Pos(SubStr, copy(Str, PosStart, Length(Str)-PosStart+1))=0 then Result:=0
else Result:=Pos(SubStr, copy(Str, PosStart, Length(Str)-PosStart+1))+PosStart-1;
end;

komp;iluje sie ale nie dzial tak jak powinno ;/

0

Zadeklarowalem PosEx bo wczesniej mi to nie dziala a mam delphi 7 ;/ nie wiem czemu

0
Miły napisał(a)

Zadeklarowalem PosEx bo wczesniej mi to nie dziala a mam delphi 7 ;/ nie wiem czemu

Zapomniałem dopisać ... PosEx jest w StrUtils - dopisz to do uses

0

Kurcze wyszukiwanie dziala, ale jesli wpisze "sfsdfsd [email protected]" to znajduje tylko costam@..... Moglbys to poprawic??

0

boże... pomyśl troche, napisz sobie warunek, że jeżeli nie ma żadnej spacji po małpie to kopiuj do końca...

0

sory ze cie tak mecze i ja tego nie robie ale kurcze probuje. W tym tekscie mail znajduje sie pomiedzy :[email protected]" jak to zrobic zeby bylo zamiast spacji?

0

sory ze cie tak mecze i ja tego nie robie ale kurcze probuje. W tym tekscie mail znajduje sie pomiedzy :[email protected]" jak to zrobic zeby bylo zamiast spacji?

Wrzuć Memo1 i Memo2 i Button na formę. W Memo1 jest jakiś tekst z adresami, a po kliknięciu na Button, w Memo2 wyświetlą się adresy, które znajdują się między : i " (dwukropkiem i cudzysłowem). Tak jak chciałeś.

procedure TForm1.Button1Click(Sender: TObject);
var
  PoMalpie, PrzedMalpa, Mail, Tekst: String;
  I, f: Integer;
begin
for f:=0 to Memo1.Lines.Count -1 do begin
 Tekst:= Memo1.Lines.Strings[f];
  while pos('@', Tekst)<>0 do
  begin
    PoMalpie:= Copy( Tekst, pos('@', Tekst)+1, posEx('"', tekst, pos('@', Tekst))-pos('@', Tekst)-1);
    PrzedMalpa:='';
    for i:=pos('@', Tekst) downto 1 do
    if Tekst[i] = ':' then break else PrzedMalpa := Tekst[i] + PrzedMalpa;

    Mail:= Przedmalpa+PoMalpie;
    Memo2.Lines.Add(Mail);
    break;
  end;
 end;
end;

Weź spójrz na kod i zauważ gdzie znajdują się te znaki.
Jeśli tego już nie zatrybisz, to weź się lepiej za zamiatanie, a nie za programowanie.

MYśLEć [!!!] [!!!] [!!!]

1 użytkowników online, w tym zalogowanych: 0, gości: 1