Como válidar um CEP

Delphi

03/03/2014

Olá Pessoal,

Eu gostaria de validar o CEP, ou seja, eu gostaria de por exemplo emitir uma mensagem caso o usuário não complete totalmente o campo do CEP, ex:
'79900- ' ou '79 00-0 0' ou ' -000'

Porém ele pode deixar o campo totalmente em branco se preferir mais não pode deixar espaços em branco caso queira inserir.

Alguem poderia me ajudar?

Desde já agradecido!
Edson Vilhalba

Edson Vilhalba

Curtidas 0

Respostas

Leandro Chiodini

Leandro Chiodini

03/03/2014

Bom dia Edson,

O que voce pode fazer é contar o número de caracteres qeu esta escríto.
o CEP deve contar "7" caracteres numéricos,
caso nao tenha esse número ele deixou de informar algum.

dai voce pode dar a mensagem com essa informação.

.lenght
GOSTEI 0
Mr. White

Mr. White

03/03/2014

Coloca uma MaskEdit ____-___
GOSTEI 0
Edson Vilhalba

Edson Vilhalba

03/03/2014

Bom dia Edson,

O que voce pode fazer é contar o número de caracteres qeu esta escríto.
o CEP deve contar "7" caracteres numéricos,
caso nao tenha esse número ele deixou de informar algum.

dai voce pode dar a mensagem com essa informação.

.lenght


O problema é que se eu utilizar o length ele sempre vai contar nove no maskedit, pois ele conta até os espaços em branco, existe alguma forma de utilizar length para ele contar somente os numeros? Eu fiz dessa forma e sempre vai dar nove então não tem como fazr nenhuma excessão.
if Length(medtCep.Text) <> 9 then
  begin
    ShowMessage('CEP Inválido!');
    exit;
  end;

GOSTEI 0
Edson Vilhalba

Edson Vilhalba

03/03/2014

Coloca uma MaskEdit ____-___


Olá Mr. White,

Já estou utilizando um maskedit '99999-999;1;_' mais isso não impede do usuário de deixar espaços em brancos dentro do MaskEdit e é isso que estou querendo evitar.
GOSTEI 0
Mr. White

Mr. White

03/03/2014

Eu uso o Edit da DevExpress, daí o EditMask já bloqueia se deixar incompleto, mas você deve usar o edit de outro componente...
GOSTEI 0
Edson Vilhalba

Edson Vilhalba

03/03/2014

Pessoal consegui resolver!
Suas dicas foram muito úteis!
Muito Obrigado!
Abaixo fica o código caso alguem mais precise:
  for I := 0 to Length(medtCep.Text) do
  begin
   if medtCep.Text[i] = ' ' then
   begin
     ShowMessage('Existe espaço em branco!');
     exit;
   end;
  end;
GOSTEI 0
Edson Vilhalba

Edson Vilhalba

03/03/2014

Eu uso o Edit da DevExpress, daí o EditMask já bloqueia se deixar incompleto, mas você deve usar o edit de outro componente...


Hmmm interessante, obrigado a dica Mr. White irei pesquisar a respeito desse MaskEdit!
GOSTEI 0
POSTAR