Mas essa funçao é bem mais demorada do que fazer a comparação direta... Além do 
quê, se são exceções (pq 11111111111 não é um CPF válido, então a validação é 
para deixá-lo passar, certo?!), é melhor deixar o mais visível possível (acho 
eu). Porque exceções não são esperadas pelo próximo programador que vai pegar o 
código, então é melhor q fique mais visível pra este!

De qualquer forma, antes que gere qualquer polêmica, eu sei que a velocidade de 
ambas as formas é ridícula e desprezível! Mas bem, já li até críticas sobre o 
FieldByName pelo "consumo de processamento"; então, para os que se preocupam 
com a velocidade do FieldByName, se preocupem também com a velocidade de usar 
uma função como essa ("Occurs") em relação à comparação direta. :)

Gabriel, não leve a mal ok?! Só comentando e discutindo mesmo...

Henrique Netzka

  ----- Original Message ----- 
  From: Gabriel Filho 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Thursday, November 30, 2006 3:41 PM
  Subject: Re: [delphi-br] Validação mais inteligente


  Function Occurs(T, S : ShortString) : Byte;
  Var
  P : Byte;
  Begin
  Result := 0;
  P := Pos (T, S);
  while P > 0 do
  begin
  Inc (Result);
  S := Copy (S, P + Length (T), 255);
  P := Pos (T, S);
  end;
  End;

  Essa funcao identifica quantas ocorrecias de um caracter há em uma string,

  Desculpe nao postar a fonte mas tenho faz tempo e nao me lembro onde
  consegui.
  Mas se nao me engano foi o DTDelphi

  espero ter ajudado

  Codigo de Ex.:

  usei isso no onValidate do campo

  If (Occurs(copy((Sender as TField).Value,0,1),(Sender as TField).Value)<11)
  then

  Em 30/11/06, Rodrigo <[EMAIL PROTECTED]> escreveu:
  >
  > if (cpf <> '00000000000')and(cpf <> '11111111111')and(cpf <>
  > '22222222222')
  > and(cpf <> '33333333333')and(cpf <> '44444444444')and(cpf <>
  > '55555555555')
  > and(cpf <> '66666666666')and(cpf <> '77777777777')and(cpf <>
  > '88888888888')
  > and(cpf <> '99999999999')then
  >
  > galera tenho uma validação de CPF e tive que colocar esse codigo acima
  > também
  > existe uma forma de validação...usando expressão regular..ou algo melhor
  > do que o acima...?
  >
  > qq sugestão é bem vinda.
  >
  > abs.
  >
  > Rodrigo Mota.
  >
  > [As partes desta mensagem que não continham texto foram removidas]
  >
  > 
  >

  [As partes desta mensagem que não continham texto foram removidas]



   

[As partes desta mensagem que não continham texto foram removidas]

Responder a