Ver Mensaje Individual
  #2  
Antiguo 21-06-2011
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Reputación: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Creo que el valor del checksum siempre se pone como último caracter.
Cuando obtienes el código del lector de código de barras, podrías quitarle el último caracter y buscarlo.

También puedes crear tu el valor del checksum y guardarlo en la tabla de códigos de barra.
El componente tiene una unit para calcular esto.
Código Delphi [-]
unit bcchksum

...

function CheckSumModulo10(const data:string):string;
  var i,fak,sum : Integer;
begin
  sum := 0;
  fak := Length(data);
  for i:=1 to Length(data) do
  begin
    if (fak mod 2) = 0 then
      sum := sum + (StrToInt(data[i])*1)
    else
      sum := sum + (StrToInt(data[i])*3);
    dec(fak);
  end;
  if (sum mod 10) = 0 then
    result := data+'0'
  else
    result := data+IntToStr(10-(sum mod 10));
end;
Responder Con Cita