Ir para conteúdo
Fórum Script Brasil
  • 0

Validação de Cmc7


Bruno Frank

Pergunta

2 respostass a esta questão

Posts Recomendados

  • 0

Olá Bruno,

De uma olhada nesse código:

function Valida_CMC7(Entrada:String) : Boolean;
var
  campo1, campo2, campo3 : String;
begin
  Entrada := SoNumero(Entrada);
  campo1 := Copy(entrada,1,7);
  campo2 := Copy(entrada,9,10);
  campo3 := Copy(entrada,20,10);
  Result := True;
  if Modulo10(campo1) <> Copy(Entrada,19,1) then
     Result := False
  Else
  if Modulo10(campo2) <> Copy(Entrada,8,1) then
     Result := False
  Else
  if Modulo10(campo3) <> Copy(Entrada,30,1) then
     Result := False;
end;

Abs. Progr'amador.

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Gerson --

Podem baixar o arquivo em excel que calcula os dígitos verificadores

http://www.4shared.com/file/49976554/8cbde...rified=2c7a4f5a

1) Digitos de controle da banda de CMC-7

2) Diagrama de localização dos caracteres magnéticos.

1) Digitos de controle da banda de CMC-7.

=========================================

CMC-7 (APENAS CARACTERES NUMÉRICOS):

07102022 4520000345 320210517437

ABCDEFG@ HIJKLMNOPQ #RSTUVWXYZ&$

# = DV1

@ = DV2

$ = DV3

ABCDEFGDV2 HIJKLMNOPQ DV1RSTUVWXYZ&DV3

Calculo do DV1:

MULTIPLIQUE A * 2 SE O RESULTADO FOR MAIOR QUE 9 SOME OS DIGITOS

MULTIPLIQUE B * 1

MULTIPLIQUE C * 2 SE O RESULTADO FOR MAIOR QUE 9 SOME OS DIGITOS

MULTIPLIQUE D * 1

MULTIPLIQUE E * 2 SE O RESULTADO FOR MAIOR QUE 9 SOME OS DIGITOS

MULTIPLIQUE F * 1

MULTIPLIQUE G * 2 SE O RESULTADO FOR MAIOR QUE 9 SOME OS DIGITOS

SOME TODOS OS RESULTADOS

RETIRE O RESTO DA DIVISÂO POR 10

SE O RESULTADO FOR MAIOR QUE 9 O DV1(#) DEVE SER IGUAL A 0

CASO CONTRARIO O DV1(#) DEVE SER O RESULTADO DA SUBTRAÇÃO DE 10-RESTO

Calculo do DV2:

MULTIPLIQUE H * 1

MULTIPLIQUE I * 2 SE O RESULTADO FOR MAIOR QUE 9 SOME OS DIGITOS

MULTIPLIQUE J * 1

MULTIPLIQUE K * 2 SE O RESULTADO FOR MAIOR QUE 9 SOME OS DIGITOS

MULTIPLIQUE L * 1

MULTIPLIQUE M * 2 SE O RESULTADO FOR MAIOR QUE 9 SOME OS DIGITOS

MULTIPLIQUE N * 1

MULTIPLIQUE O * 2 SE O RESULTADO FOR MAIOR QUE 9 SOME OS DIGITOS

MULTIPLIQUE P * 1

MULTIPLIQUE Q * 2 SE O RESULTADO FOR MAIOR QUE 9 SOME OS DIGITOS

SOME TODOS OS RESULTADOS

RETIRE O RESTO DA DIVISÂO POR 10

SE O RESULTADO FOR MAIOR QUE 9 O DV1(#) DEVE SER IGUAL A 0

CASO CONTRARIO O DV2(@) DEVE SER O RESULTADO DA SUBTRAÇÃO DE 10-RESTO

Calculo do DV3:

MULTIPLIQUE R * 1

MULTIPLIQUE S * 2 SE O RESULTADO FOR MAIOR QUE 9 SOME OS DIGITOS

MULTIPLIQUE T * 1

MULTIPLIQUE U * 2 SE O RESULTADO FOR MAIOR QUE 9 SOME OS DIGITOS

MULTIPLIQUE V * 1

MULTIPLIQUE W * 2 SE O RESULTADO FOR MAIOR QUE 9 SOME OS DIGITOS

MULTIPLIQUE X * 1

MULTIPLIQUE Y * 2 SE O RESULTADO FOR MAIOR QUE 9 SOME OS DIGITOS

MULTIPLIQUE Z * 1

MULTIPLIQUE & * 2 SE O RESULTADO FOR MAIOR QUE 9 SOME OS DIGITOS

SOME TODOS OS RESULTADOS

RETIRE O RESTO DA DIVISÂO POR 10

SE O RESULTADO FOR MAIOR QUE 9 O DV1(#) DEVE SER IGUAL A 0

CASO CONTRARIO O DV3($) DEVE SER O RESULTADO DA SUBTRAÇÃO DE 10-RESTO

Banda Magnética ou CMC7: São os números impressos abaixo do cheque capturados pelo leitor magnetico.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...