Calculo digito de chequeo contenedores

5,041 views
Skip to first unread message

Carlos Salcedo

unread,
Aug 6, 2012, 6:18:57 PM8/6/12
to visual fox
Buenas tardes

Alquien conoce la funcion para calcular el digito de chequeo
de contenedores, o por lo menos la formula.

es algo como esto ;

http://www.sds.es/despiece/Espa/index.htm

Existen paginas que realizan el calculo pero no he
encontrado la formula

Agadezco la ayuda

Saludos
Carlos

ArturoPC

unread,
Aug 7, 2012, 4:27:34 AM8/7/12
to publice...@googlegroups.com
Hola Carlos:

El cálculo del dígito verificador para contenedores es el ISO 6346. Si buscas con ese dato encontrarás bastante información.

Ahora la fórmula:

HASU400257-7 
Donde el número son los 10 primero dígitos y el último es el dígito verificador.

(1) Para las letras asígnale un valor de la A a la Z que va desde 10 hasta 38 omitiendo el 11, el 22 y el 33. Así A=10; B=12; C=13; D=14...; J=20; K=21; L=23; M=24...; U=32; V=34...; Y=37; Z=38
(2) A cada número multiplícalo por 2 elevado a su posición-1. Así al primer número lo multiplicas por 1 (2^0), al segundo número por 2 (2^1), al tercero por 4 (2^2), al cuarto por 8 (2^3) y así hasta el décimo por 512 (2^9)
(3) Suma todos los resultados del paso anterior.
(4) Divide el resultado de la suma entre 11.
(5) Quédate con la parte entera de la división anterior.
(6) Al entero obtenido multiplícalo por 11.
(7) Resta la sumatoria del paso 3 menos el número obtenido en el paso 6 y ese el dígito verificador.

Ejemplo:
TCNU948449-4 

Paso 1
T = 31
C = 13
N = 25
U = 32

Paso 2
Pos 1 = 31*1 = 31
Pos 2 = 13*2 = 26
Pos 3 = 25*4 = 100
Pos 4 = 32*8 = 256
Pos 5 = 9*16 = 144
Pos 6 = 4*32 = 128
Pos 7 = 8*64 = 512
Pos 8 = 4 *128 = 512
Pos 9 = 4*256 = 1024
Pos 10 = 9*512 = 4608

Paso 3
31+26+100+256+144+128+512+512+1024+4608 = 7341

Paso 4
7341/11 = 667.3636363636

Paso 5
667

Paso 6
667*11 =  7337

Paso 7
7341 - 7337 = 7

Dígito verificados: 7

Slds,
ArturoPC.

ArturoPC

unread,
Aug 7, 2012, 5:07:04 AM8/7/12
to publice...@googlegroups.com
Y acá te copio la función que devuelve el dígito verificador. Espero te sirva.

Slds
Arturo PC.

*
** Devuelve dígito verificador de contenedor
FUNCTION xxDigVerContainer
LPARAMETERS lcCont
LOCAL lnDigito, lnSuma1, lnDigVer
   IF LEN(lcCont)#10   && no debe haber espacio entre las letras y los números
      RETURN -1   && si devuelve -1 es porque falló
   ENDIF
   *
   lnSuma1 = 0
   FOR i=1 TO 10
      IF i>4
         lnDigito = VAL(SUBSTR(lcCont,i,1))
      ELSE
         lnDigito = ASC(SUBSTR(lcCont,i,1)) - 55
         lnDigito = lnDigito + INT((lnDigito-1)/10)
      ENDIF
      lnSuma1 = lnSuma1 + lnDigito * 2^(i-1)
   ENDFOR
   *
   lnDigVer = lnSuma1 - INT(lnSuma1/11)*11
   RETURN lnDigVer   && ojo, lo devuelve como número, no como carácter
ENDFUN


On Monday, August 6, 2012 5:18:57 PM UTC-5, Carlos Salcedo wrote:

Carlos Salcedo

unread,
Aug 7, 2012, 10:23:41 AM8/7/12
to visual fox
Arturo

Muchas gracias muy gentil de tu parte, la estare probando pero de antemano gracias

Bendiciones
Gracias


Date: Tue, 7 Aug 2012 02:07:04 -0700
From: apa...@gmail.com
To: publice...@googlegroups.com
Subject: [vfp] Re: Calculo digito de chequeo contenedores
--
 
 
 

Luis Maria Guayan

unread,
Aug 7, 2012, 10:44:42 AM8/7/12
to publice...@googlegroups.com
Hay un pequeño error en el paso 7 del ejemplo: TCNU948449-4

7341 - 7337 = 4

El verificador es 4

Pueden verificar online:
http://www.sds.es/despiece/Espa/index.htm

Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________

--
 
 
 

ArturoPC

unread,
Aug 7, 2012, 12:17:11 PM8/7/12
to publice...@googlegroups.com
Muy buen ojo Luis María, tienes toda la razón, el dígito verificador es 4. La amanecida me jugó una mala pasada.

Arturo PC.

rafaelok

unread,
Aug 10, 2012, 8:29:28 PM8/10/12
to publice...@googlegroups.com
Arturo buenas noches
 
te agradeceria enormemente me envies o publiques el codigo completo (formulario etc). ok.r...@gmail.com
 
Rafael Ortega

HernanCano

unread,
Aug 11, 2012, 10:58:56 PM8/11/12
to publice...@googlegroups.com
Lo ves aquí en Ago-07-2012; lo puso un colega que se llama ArturoPC (unos dos o tres pantallazos antes de éste). Dále buscar a tu buscador (en Firefox es con Control F) y le dices que bysque ArturoPC o que busque xxDigVerContainer.

Le dí click a una liniecita en tu mensaje que dice "mostrar texto" y veo que le respondiste a él!!! ¿Por qué se lo pides si ahí está? ¿No lo viste? Vuélvelo a repasar......

Chao.
Reply all
Reply to author
Forward
0 new messages