Calcular e validar CMC7 do cheque

Top  Previous  Next

Function CalculaC3(numero: String): String;

var

  x, resto, tam, digito : Integer;

  d, d_aux : String;

begin

  digito:= 0;

 

  d_aux    := SoNumero(numero);

  tam      := length(d_aux);

  d        := copy(d_aux,0,tam);

 

  For x:= 1 To length(d) Do

  begin

    digito:= digito + (StrToInt(d[x])*(length(d)+2-x));

  End;

 

  digito   := digito * 10;

  resto    := digito mod 11;

  digito   := resto;

  resto    := digito mod 10;

  Result   := IntToStr(resto);

End;

 

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,1Then

     Result := False

  Else

  If Modulo10(campo2) <> Copy(Entrada,8,1Then

     Result := False

  Else

  If Modulo10(campo3) <> Copy(Entrada,30,1Then

     Result := False;

End;