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]