Ir al contenido


Foto

Calcular el digito de control de un EAN 13


  • Por favor identifícate para responder
No hay respuestas en este tema

#1 seoane

seoane

    Advanced Member

  • Administrador
  • 1.259 mensajes
  • LocationEspaña

Escrito 09 octubre 2010 - 09:53

Pues como dice el titulo, esta función recibe como parámetro un código de barras (los 12 primeros números) y devuelve el dígito numero 13, el dígito de control.



delphi
  1. function EAN13(i: int64): String;
  2. var
  3.   j: Integer;
  4. begin
  5.   Result:= Format('%12.12d',[i]);
  6.   j:= 0;
  7.   while i > 0 do
  8.   begin
  9.     inc(j,(i mod 10) * 3);
  10.     i:= i div 10;
  11.     inc(j,i mod 10);
  12.     i:= i div 10;
  13.   end;
  14.   Result:= Result + IntToStr((10 - (j mod 10)) mod 10);
  15. end;
  16.  
  17. // Por ejemplo
  18. ShowMessage(EAN13(123456789012));



Y si el numero lo tenemos en una variable String, por ejemplo en un TEdit


delphi
  1. ShowMessage(EAN13(StrToInt64(Edit1.Text)));



  • 0




IP.Board spam blocked by CleanTalk.