Funcao - calcular codigo de barras |
Top Previous Next |
// Calcula o dígito do código de barras recebido. Retorna somente o dígito function CodBarraDigito(const Valor: string): string; var codigo : string; A, Pares, Impares: Integer; begin Codigo := RepeteStr('0', 12 - Length(Valor)) + Valor; Pares := 0; Impares := 0; // soma os valores pares e ímpares separadamente for A := 1 to 12 do if Odd(a) then Impares := Impares + StrToInt(Codigo[A]) else Pares := Pares + StrToInt(Codigo[A]); // extrai o dígito Result := IntToStr(Impares + (Pares * 3)); Result := Copy(Result, Length(Result), 1); Result := IntToStr(10 - StrToInt(Result)); if Result = '10' then Result := '0'; end;
function GeraCodBarra(const Valor: string): string; begin Result := Valor + CodBarraDigito(valor); end;
// Verifica se o código de barras está ok. function CodBarraValido(const valor: string): Boolean; begin Result := (Valor = GeraCodBarra(Copy(Valor, 1, Length(Valor)-1))); if StrToInt64Def(Valor, 0) = 0 then Result := False; end;
|