quinta-feira, 7 de maio de 2015
Digito de controle EAN13
Função que permite verificar se o dígito de controle de um código padrão EAN é válido, a rotina poderá ser alterada também para gerar um dígito de controle
{
Função: CHKEAN13( ) -> boolean
Categoria: Object Pascal (Codificação em Unidade de Consumo)
Função utilizada para verificar o dígito do código EAN13, retornando (true) para dígito válido e (false) para inválido.
}
function CHKEAN13( EAN : string ) : boolean;
var
pfx, sfx, clc, stp : integer;
cod, dig : string;
begin
pfx := 0; clc := 3;
cod := Copy( '0000000000000' + Trim( EAN ), Length( EAN ) + 1, 13 );
dig := Copy( cod, 13, 1 );
cod := Copy( cod, 1, 12 );
for stp := Length( cod ) downto 1 do
begin
Inc( pfx, StrToInt( Copy( cod, stp, 1 ) ) * clc );
if clc = 3 then clc := 1 else clc := 3;
end;
sfx := ( pfx - ( pfx mod 10 ) + 10 ) - pfx ;
if ( sfx mod 10 ) = 0 then Result := ( dig = '0' )
else Result := ( dig = IntToStr( sfx ) );
end;
Assinar:
Postar comentários (Atom)
Nenhum comentário:
Postar um comentário