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]