Detection d'email incorrect
Bonjour,
Voici un bout de code qui permet de detecter les emails dans un texte.
Je ne sais pas pourquoi il ne fonctionne pas car il retourne une valeur trop longue exemple : "dupont@hotmail.com textentrop".
Si vous pouviez m'aider. De plus j'ai une fonction while qui detecte la fin et le debut de l'adresse email part un caractère spéciaux. Si vous avez mieux à me proposé je suis preneur car elle me semble pas très optimisé !
Merci d'avance
Code:
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
| procedure DetecteEmail(data: string);
var
Index,i,j : integer;
Texte,tmp: string;
begin
Texte:=data;
Index:= pos('@',Texte);
While Index <> 0 do
Begin
i:=Index;
While (Texte[i] <> ';')and(Texte[i] <> '"')and(Texte[i] <> '''')and(Texte[i] <> '>')and(Texte[i] <> '&')and(Texte[i] <> ' ')and(Texte[i] <> '!')and(Texte[i] <> '%')and(i < length(Texte)) do
inc(i);
if i-Index < 20 then
begin
j:=Index;
While (Texte[j] <> ';')and(Texte[j] <> '"')and(Texte[j] <> '''')and(Texte[j] <> '>')and(Texte[j] <> '&')and(Texte[j] <> ' ')and(Texte[j] <> '!')and(j <> 1) do
j:=j-1;
if Index-j < 20 then
begin
tmp:=Copy(Texte,j,i);
AjouterEmail(tmp);
Delete(Texte,1, i);
end;
end;
Index:= pos('@',Texte);
end;
end; |