Buscar

Validar a linha 1 do cmc7 - c1,c2 e c3 digitos verificadores do cheque

Código

Rotina de Validação da 1 linha do CMC7.
 
{passar os campos compensação, banco e agencia concatenados}

function validaC1(frase:String; C:integer):boolean;
var i,soma,num:integer;
begin
  if length(frase)=0 then
   validaC1:=false
  else
   begin
     soma:=0;
     num:=8;
     for I:=1 to Length(frase) do
      begin
        soma:=soma+(strtoint(frase[i])*num);
        inc(num);
        if num=10 then
         num:=2;
      end;
      soma:=soma mod 11;
      validaC1:=false;
      if C=soma then
       validaC1:=true;
   end;
end;

{passar o campo conta corrente com uma string de 10 posicoes}

function validaC2(frase:String; C:integer):boolean;
var i,soma,num:integer;
begin
  if length(frase)=0 then
   validaC2:=false
  else
   begin
     soma:=0;
     num:=11;
     for I:=1 to Length(frase) do
      begin
        soma:=soma+(strtoint(frase[i])*num);
        dec(num);
      end;
      soma:=soma mod 11;
      if (soma=0) or (soma=1) then
       soma:=0
      else
       soma:=11-soma;
      validaC2:=false;
      if C=soma then
       validaC2:=true;
   end;
end;

{passar o campo Numero do Chequecom uma string de 6 posicoes}

function validaC3(frase:String; C:integer):boolean;
var i,soma,num:integer;
begin
  if length(frase)=0 then
   validaC3:=false
  else
   begin
     soma:=0;
     num:=7;
     for I:=1 to Length(frase) do
      begin
        soma:=soma+(strtoint(frase[i])*num);
        dec(num);
      end;
      soma:=soma mod 11;
      if (soma=0) or (soma=1) then
       soma:=0
      else
       soma:=11-soma;
      validaC3:=false;
      if C=soma then
       validaC3:=true;
   end;
end;

Publicidade

Vote na dica




Quantidade de votos: 0 votos
Aceitação: 0%


Detalhes da dica

Categoria: Componentes
Adicionada dia: 28/10/07
Por: Lincoln Mendonca Ferreira
Visualizada: 8421 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009