Cálculo dígito verificador módulo 10
Gostaria de saber se alguém poderia postar a fórmula de cálculo de dígito verificador módulo 10.
Obrigado.
Obrigado.
Andremuller
Curtidas 0
Respostas
Vprates
07/01/2005
Desculpe a ignorancia mas o q é exatamente esse modulo 10???
GOSTEI 0
Andremuller
07/01/2005
É um tipo de cálculo.
Ex.: Bloquetos utilizam módulo 11 para o dígito verificador
Inscrições Estaduais, nos estados que conheço, utilizam módulo 10 para gerar os números depois do ´-´
Preciso de uma função que a partir do código informado, gere o dígito verificador
Ex.: Bloquetos utilizam módulo 11 para o dígito verificador
Inscrições Estaduais, nos estados que conheço, utilizam módulo 10 para gerar os números depois do ´-´
Preciso de uma função que a partir do código informado, gere o dígito verificador
GOSTEI 0
Vprates
07/01/2005
Da uma olhada nesse link talvez de pra vc aproveitar alguma coisa:
[url]http://www.firebase.com.br/cgi-bin/firebase.cgi/artigo?ID=917[/url]
Espero que te ajude
[url]http://www.firebase.com.br/cgi-bin/firebase.cgi/artigo?ID=917[/url]
Espero que te ajude
GOSTEI 0
Andremuller
07/01/2005
Achei.
Mas obrigado de qualquer forma.
Mas obrigado de qualquer forma.
function Mod10(Num : String) : Integer;
Var
Tamanho, Soma : Integer;
Resultado : Array [1..100] of Integer;
Fator, Resto, I : Byte;
begin
{Função que retorna dígito baseado no cálculo do MÓDULO 10}
Tamanho := Length(Num); // Tamanho da cadeia de números
Fator := 2; // Fator para multiplicação
For I := Tamanho Downto 1 Do // Inicia a multiplicação da DIREITA PARA A ESQUERDA
begin
Resultado[I] := StrToInt(Copy(Num,I,1)) * Fator;
If Fator = 2 Then // Alterna o fator entre 2 e 1
Fator := 1
Else
Fator := 2;
end;
Soma := 0;
For I := 1 To Tamanho Do // Somam-se todos os resultados da multiplicação
If Resultado[I] > 9 Then // Se o resultado contiver 2 dígitos, somaremos separadamente os dois
Soma := Soma + StrToInt(Copy(IntToStr(Resultado[I]),1,1)) + StrToInt(Copy(IntToStr(Resultado[I]),2,1))
Else
Soma := Soma + Resultado[I];
Resto := Soma mod 10; // Obtem-se o resto da divisão entre a SOMA e 10
If Resto = 0 Then // Se RESTO for zero, o dígito é zero
Mod10 := 0
Else // Se existir RESTO, o dígito será (10 - RESTO)
Mod10 := 10 - Resto;
end;GOSTEI 0