Eu jaz fiz pelo modulo 11 base 9 assim. E deu valores diferentes.

 

function Modulo11(Valor: String; Base: Integer = 9; Resto : boolean = false)
: string; {

   Rotina muito usada para calcular dígitos verificadores

   Pega-se cada um dos dígitos contidos no parâmetro VALOR, da direita para
a

   esquerda e multiplica-se pela seqüência de pesos 2, 3, 4 ... até BASE.

   Por exemplo: se a base for 9, os pesos serão 2,3,4,5,6,7,8,9,2,3,4,5...

   Se a base for 7, os pesos serão 2,3,4,5,6,7,2,3,4...

   Soma-se cada um dos subprodutos.

   Divide-se a soma por 11.

   Faz-se a operação 11-Resto da divisão e devolve-se o resultado dessa
operação

   como resultado da função Modulo11.

   Obs.: Caso o resultado seja maior que 9, deverá ser substituído por 0
(ZERO).

}

var

   Soma, Contador, Digito, iResto : integer;

   Peso: String;

begin

   Soma := 0;

   Peso := '4329876543298765432987654329876543298765432';

   for Contador := 1 to length(valor) do

   begin

      Soma := Soma + (StrToInt(Valor[Contador]) * StrToInt(Peso[contador]));

   end;

 

//   iResto := (Soma mod 11);

   Digito := 11 - (Soma mod 11);

   if Digito > 9 then

     Digito := 0;

 

   Result := IntToStr(Digito);

end;

 

 

De: Felipe Yahoo [mailto:nunesfel...@yahoo.com.br] 
Enviada em: terça-feira, 30 de março de 2010 17:49
Assunto: Digito Verificador

 

Boa tarde senhores, preciso de ajuda para descobrir qual calculo foi feito
para encontrar esses digitos informados em baixo:

Já utilizei o Modulo10 e Modulo11.

 


Codigo do Produto

Digito Verificador


1751

5


2002

8


3013

9


3050

3


3051

1


3057

1


4032

1


4070

3


6004

6

 

Obrigado



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

Responder a