Cícerot,

muito obrigado pela rotina. Vou adaptá-la e testar. Depois te dou o retorno quanto ao 
resultado. Mas valeu mesmo, muito obrigado.


Magno



  ----- Original Message ----- 
  From: Cícerot 
  To: [EMAIL PROTECTED] 
  Sent: Wednesday, September 15, 2004 1:48 PM
  Subject: RES: [delphi-br] Módulo 11


  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]



        Yahoo! Grupos, um serviço oferecido por: 
          


------------------------------------------------------------------------------
  Links do Yahoo! Grupos

    a.. Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/
      
    b.. Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]
      
    c.. O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do 
Yahoo!. 



[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

<*> 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