GARANTIR DESCONTO

Fórum email preenchido corretamenta #356206

29/03/2008

0

Boa noite gente estou querendo validar um campo de email que tenha o caracter @ caso nao possua esse caracter no campo entro com uma mensagem de email invalido. uma coisa bem simples.

tentei usar o midstr mas pelo que percebi ele nao deixa eu usar a condicao If alguem tem uma outra forma ou a mesa derrepente estou fazendo algo errado e nao estou percebendo.


vlw gente.
abraco.


Ciotti

Ciotti

Responder

Posts

29/03/2008

Wanderok

Function ValidaEMail(const EMailIn: PChar):Boolean; const CaraEsp: array[1..40] of string[1] = ( ´!´,´#´,´$´,´¬´,´¨´,´&´,´*´, ´(´,´)´,´+´,´=´,´?´,´¬´,´¢´,´¹´,´²´, ´³´,´&´,´´´,´´´,´ç´,´Ç´,´,´,´;´,´:´, ´<´,´>´,´~´,´^´,´?´,´/´,´\´,´|´,´[´,´]´,´{´,´}´, ´º´,´ª´,´°´); var i,cont : integer; EMail : ShortString; begin EMail := EMailIn; Result := True; cont := 0; if EMail <> ´´ then if (Pos(´@´, EMail)<>0) and (Pos(´.´, EMail)<>0) then // existe @ . begin if (Pos(´@´, EMail)=1) or (Pos(´@´, EMail)= Length(EMail)) or (Pos(´.´, EMail)=1) or (Pos(´.´, EMail)= Length(EMail)) or (Pos(´ ´, EMail)<>0) then Result := False else // @ seguido de . e vice-versa if (abs(Pos(´@´, EMail) - Pos(´.´, EMail)) = 1) then Result := False else begin for i := 1 to 40 do // se existe Caracter Especial if Pos(CaraEsp[i], EMail)<>0 then Result := False; for i := 1 to length(EMail) do begin // se existe apenas 1 @ if EMail[i] = ´@´ then cont := cont + 1; // . seguidos de . if (EMail[i] = ´.´) and (EMail[i+1] = ´.´) then Result := false; end; // . no f, 2ou+ @, . no i, - no i, _ no i if (cont >=2) or ( EMail[length(EMail)]= ´.´ ) or ( EMail[1]= ´.´ ) or ( EMail[1]= ´_´ ) or ( EMail[1]= ´-´ ) then Result := false; // @ seguido de COM e vice-versa if (abs(Pos(´@´, EMail) - Pos(´com´, EMail)) = 1) then Result := False; // @ seguido de - e vice-versa if (abs(Pos(´@´, EMail) - Pos(´-´, EMail)) = 1) then Result := False; // @ seguido de _ e vice-versa if (abs(Pos(´@´, EMail) - Pos(´_´, EMail)) = 1) then Result := False; end; end else Result := False; end;



Responder

Gostei + 0

29/03/2008

Wanderok

Ué ???????????????????????

CODE não funcionou nao !!! :D:D:D

É isto !


Responder

Gostei + 0

29/03/2008

Ciotti

ola amigo nao seria mais facil usar midstr usei dessa forma
mas nao funcionou

if midstr(text1.text,1,50)<>´@´then begin
showmessage(´Email invalido´)
end


cara nao funcionou ,nao sei pq .

vou ver seu codigo

vlw

se tiver outro exemplo é so mandar


Responder

Gostei + 0

29/03/2008

Wanderok

midstr(text1.text,1,50)<>´@´ cara nao funcionou ,nao sei pq .


TesteA := MidStr(´ForumWeb´, 3, 6); // TesteA = ´rumWeb´;
TesteB := MidStr(´ForumWeb´, 6, 3); // TesteB = ´Web´;
TesteC := Copy(´ForumWeb´, 6, 3); // TesteC = ´Web´ também.

LOGO,


showmessage(midstr([b:579edfc84f]´wanderok@msn.com[/b:579edfc84f]´,1,50)) = ´[color=red:579edfc84f][b:579edfc84f]wanderok@msn.com´[/b:579edfc84f][/color:579edfc84f]

Sacou ???


Responder

Gostei + 0

29/03/2008

Wanderok

Além do mais....

o fato de ter @ nao implica necessariamente em ser um email correto.

exemplos:

@
@@@
teste@
teste@@
@teste
@teste.....com
@testeponto

Todo exemplos de literais que possuem o caracter @ e q nao sao emails válidos.

É isto.


Responder

Gostei + 0

29/03/2008

Ciotti

opa amigo vlw pelas dicas mas estou fazendo de uma forma meia grosseira de validar email, estou a um bom tempo sem programar em delphi , programos bem em vb, minha dificuldade foi de fazer essa sua funcao pois acusava um erro e nao consegui manipular.
mas desde ja fico hiper grato pela sua dica
forte abraco.


Responder

Gostei + 0

30/03/2008

Wanderok

solucinado !!!! :D:D:D


Responder

Gostei + 0

30/03/2008

Wanderok

solucinado !!!! :D:D:D


[size=24:9e69654ce8][color=red:9e69654ce8][b:9e69654ce8]EDITANDO DE FORMA ´INTELIGENTE´ !!![/b:9e69654ce8][/color:9e69654ce8][/size:9e69654ce8]

SO-LU-CI-O-NA-DO.... :D:D:D


Responder

Gostei + 0

30/03/2008

Ciotti

ola amigo fiz sua funcao funciou certinho nao deu nenhum erro decompimplacao , so gostaria de saber como manipular agora no edit.


fiz dessa forma mas nao sei como inserir no edit:

procedure TForm1.Edit1Change(Sender: TObject);
begin
ValidaEMail()
end;

end.

dentro do Validaemail nao sei como manipular.

valew


Responder

Gostei + 0

30/03/2008

Ciotti

Ola amigo consegui fazer mas nao é 100¬ mas quebra um galhao forte abraco Fica com Deus.


Responder

Gostei + 0

30/03/2008

Wanderok

procedure TForm1.Edit1Change(Sender: TObject); begin IF NOT ValidaEMail(EDIT1.TEXT) THEN BEGIN SHOWMESSAGE(´EMAIL INVALIDO !!!´); EDIT1.SETFOCUS; EXIT; END; end;



Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar