Arrumei essa rotina e adaptei para NUMERO DE PROCESSO que eh modulo 11.
01450.12345/2345-99

O segrego eh o seguinte:
Inverta tudo
5432 54321 05410 e faça
5x1+4X2+3x3+2x4

5x5+4x6+3x7+2x8+1x9

0x10+5x11=4x13+'x14+0x15

some dos tres / 11

resto=0 primeiro digito = 1
resto=1 primeiro digito = 0
resto=10 primeiro digito= 1
diferente de 0,1,10 primeiro digito eh o resto encontrado.

Pegue o primeiro digito e coloque no final do numero que você tem

01450.12345/2345(coloque aqui o primeiro digito encontrado)
Comece tudo novamente com esse numero incluido (neste caso a ultima
multiplicação vai ser igual a wvariavel x 16)
agora você vai encontrar o segundo digito verificador e pronto.

Essa regra se aplica para processos no serviço publico.


Function CalculaCpfProc(Numero : string) : string;
var i,j,k,Soma,Digito : Integer;
CNPJ : Boolean;
resto : integer;
begin
  case Length(Numero) of
     9 : CNPJ := True;
    15 : CNPJ := true;
      else raise Exception.Create('Número inválido');
  end;

  Result := Numero;
  for j := 1 to 2 do
  begin
    k := 2;
    Soma := 0;
    for i := Length(Result) downto 1 do
    begin
         Soma := Soma + (Ord(Result[i])-Ord('0'))*k;
         Inc(k);
         if (k > 16) and CNPJ then
            k := 2;
    end;
    resto := soma mod 11;
    begin
      if resto = 0 then
         digito := 1
      else
         if resto = 1 then
            digito := 0
         else
            if resto = 10 then
               digito := 1
            else
               digito := 11- soma mod 11
    end;
    Result := Result + Chr(Digito + Ord('0'));
    MessageDlg(inttostr(digito), mtInformation, [mbOk], 0);
  end;
end;

-----Mensagem original-----
De: Trama Paulista .:sites .:sistemas
[mailto:[EMAIL PROTECTED]
Enviada em: quarta-feira, 15 de setembro de 2004 12:57
Para: [EMAIL PROTECTED]
Assunto: [delphi-br] Módulo 11


Alguém saberia me dizer onde onde opsso encontro o cálculo do dígito
verificador módulo 11???


Desde já, obrigado.

Magno


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



--
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]

Links do Yahoo! Grupos






---
Incoming mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.698 / Virus Database: 455 - Release Date: 02/06/2004

---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.698 / Virus Database: 455 - Release Date: 02/06/2004



-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 

Responder a