segunda-feira, 31 de outubro de 2011

Função de Validação de Código de Barras - EAN

função pega na internet, mas testei e funciona.


function ValidaEAN( CodigoBarras:string ): Boolean;
var numero, soma2:string;
    digito:byte;
    soma,s,i,calculo:integer;
begin
  result:= false;


  numero := CodigoBarras;


  while (length(numero) < 13) do
  begin
    numero:= '0'+numero;
  end;


  digito:= StrToInt(copy(numero,length(numero),1));


  delete(numero,length(numero),1);


  if (numero<>'000000000000') then
  begin
    s:=length(numero);
    i:=0;
    calculo := 3;
    soma :=0;
    repeat
       soma:= soma + StrToInt(copy(numero,length(numero)-i,1))* calculo;
      inc(i);
    if calculo =3 then
      calculo := 1
      else
       calculo := 3;
      dec(s);
    until s=0;
    numero:=IntToStr(soma);
    soma2:= copy(numero,length(numero),1);
    if soma2 = '0'then
      Result:= (digito=strtointdef(soma2,0))
    else
      result:= (digito=10-StrToInt(soma2));
    end;
end;

Um comentário: