eu tb achei essa funcao...  mas nao funciona no Delphi 2007... isso sem falar 
que essa funcao nao prevê a digitação de um numero diferente de digitos... 

mesmo assim obrigada pela atencao




________________________________
De: Alisson Yahoo <alss...@yahoo.com.br>
Para: delphi-br@yahoogrupos.com.br
Enviadas: Terça-feira, 7 de Julho de 2009 12:57:40
Assunto: Re: [delphi-br] Validacao de PIS





Pra que componente? É uma rotina muito simples. Pesquisei na internet e 
achei uma função pra validar PIS:

function TForm1.ConferePis( sPis: String): Boolean;
var i, iSoma, iAux, iDigito: Integer;
begin
iSoma := 0;
iAux := 2;
for i := 1 to 10 do
begin
iSoma := iSoma + (iAux * StrToInt(Copy( sPis, 11-i, 1)));
if iAux < 9 then
iAux := iAux+1
else
iAux := 2;
end;

iDigito := 11 - (iSoma mod 11);
if iDigito > 9 then
iDigito := 0;

Result := StrToInt(Copy( sPis, 11, 1)) = iDigito;
if not Result then
MessageDlg(' Pis inválido!', mtWarning, [mbOK], 0);
end;

Eu tenho essa outra pra conferir CPF. Eu chamo no evento OnExit do 
componente:

function ConfereCPF(Edit : TCustomEdit) : Boolean;
var n1,n2,n3,n4, n5,n6,n7, n8,n9,d1, d2: Integer;
Digitado, Calculado, Num : String;
begin
ConfereCpf := True;
Num := Edit.Text;
Num := StringReplace( Num, '.', '', [rfReplaceAll] );
Num := StringReplace( Num, '-', '', [rfReplaceAll] );
Num := StringReplace( Num, '_', '', [rfReplaceAll] );

if (Trim(Num) <> '') then
begin
n1 := StrToInt (Num[1]);
n2 := StrToInt (Num[2]);
n3 := StrToInt (Num[3]);
n4 := StrToInt (Num[4]);
n5 := StrToInt (Num[5]);
n6 := StrToInt (Num[6]);
n7 := StrToInt (Num[7]);
n8 := StrToInt (Num[8]);
n9 := StrToInt (Num[9]);

d1 := n9*2+n8*3+n7* 4+n6*5+n5* 6+n4*7+n3* 8+n2*9+n1* 10;
d1 := 11 - (d1 mod 11);

if (d1 >= 10) then
d1 := 0;

d2:=d1*2+n9* 3+n8*4+n7* 5+n6*6+n5* 7+n4*8+n3* 9+n2*10+n1* 11;
d2:=11-(d2 mod 11);

if (d2 >= 10) then
d2:=0;

Calculado := IntToStr(d1) + IntToStr (d2);
Digitado := Num[10] + Num[11];
ConfereCpf := Calculado = Digitado;
if (Calculado <> Digitado) then
begin
Edit.SetFocus;
raise exception.Create( 'CPF não confere!');
end;
end;
end;

____________ _________ _________ _________ _________ __
Faça ligações para outros computadores com o novo Yahoo! Messenger 
http://br.beta. messenger. yahoo.com/ 

   


      
____________________________________________________________________________________
Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com

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

Responder a