send
Grupo de Telegram
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

EAN13: Verificar y generar codigo de control

  • 0 Respuestas
  • 3097 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5283
  • Actividad:
    35%
  • Reputación 28
  • ANTRAX
    • Ver Perfil
    • Underc0de
    • Email
  • Skype: underc0de.org
  • Twitter: @Underc0de
« en: Julio 26, 2010, 04:22:33 pm »
Bueno, aca les traigo dos funciones... una verifica si el ean13 (de 13 digitos) es correcto el codigo de control (el ultimo caracter) y la otra funcion GENERA el correspondiente codigo de control de un EAN13 pasandole solamente los 12 digitos...

Espero que les sirva...

Código: Visual Basic
  1. '========== Codigo realizado por CULD ==========
  2. '============= culd_@hotmail.com ===============
  3. 'La funcion "EAN13_Valido" devuelve si el codigo
  4. 'control del EAN13 es VALIDO...
  5. 'El algoritmo utilizado es el descrito en la
  6. 'siguiente pagina web
  7. 'http://latecladeescape.com/w0/recetas-algoritmicas/validar-codigos-ean.html
  8. 'La function "EAN13_Control" devuelve el numero de
  9. 'control correspondiente para un codigo EAN13 de
  10. '12 digitos (asi devuelve el control que seria el 13)
  11. '===============================================
  12.  
  13. Public Function EAN13_Valido(Codigo As String) As Boolean
  14. 'Variables a utilizar
  15. Dim X As Integer
  16. Dim SumaPar As Integer
  17. Dim SumaImpar As Integer
  18. Dim Resto As Integer
  19. Dim Control As Integer
  20.  
  21. 'Comprobar que el código tiene 13 dígitos. De no ser así, no es correcto.
  22. If Len(Codigo) <> 13 Then
  23.     EAN13_Valido = False
  24.     Exit Function
  25. End If
  26.  
  27. 'Sumar los dígitos de lugares pares por un lado y los de los impares por otro, pero sin incuir el último dígito.
  28. For X = 1 To 12
  29.     If X Mod 2 = 0 Then
  30.         SumaPar = SumaPar + CInt(Mid(Codigo, X, 1))
  31.     Else
  32.         SumaImpar = SumaImpar + CInt(Mid(Codigo, X, 1))
  33.     End If
  34. Next X
  35.  
  36. 'multiplicar la suma de los pares por 3.
  37. SumaPar = SumaPar * 3
  38.  
  39. 'Sumar el resultado de los pares y el de los impares y hallar el resto de la división por 10.
  40. Resto = (SumaPar + SumaImpar) Mod 10
  41.  
  42. 'Realizar la operación 10 menos ese resto y ese es el dígito de control
  43. Control = 10 - Resto
  44.  
  45. 'Si como resultado sale 10, entenderemos que el dígito de control es 0.
  46. If Control = 10 Then
  47.     If CInt(Right(Codigo, 1)) = 0 Then
  48.         EAN13_Valido = True
  49.         Exit Function
  50.     Else
  51.         EAN13_Valido = False
  52.         Exit Function
  53.     End If
  54. End If
  55.  
  56. 'Comprobar que el dígito de control que hemos calculado y el último dígito del código EAN coinciden
  57. If CInt(Right(Codigo, 1)) = Control Then
  58.     EAN13_Valido = True
  59.     Exit Function
  60. Else
  61.     EAN13_Valido = False
  62.     Exit Function
  63. End If
  64. End Function
  65.  
  66. Public Function EAN13_Control(Codigo As String) As Integer
  67. 'Variables a utilizar
  68. Dim X As Integer
  69. Dim SumaPar As Integer
  70. Dim SumaImpar As Integer
  71. Dim Resto As Integer
  72. Dim Control As Integer
  73.  
  74. 'Comprobar que el código tiene 12 dígitos. De no ser así, no es correcto.
  75. 'devuelvo un numero mayor a 9
  76. If Len(Codigo) <> 12 Then
  77.     EAN13_Control = 10
  78.     Exit Function
  79. End If
  80.  
  81. 'Sumar los dígitos de lugares pares por un lado y los de los impares por otro, pero sin incuir el último dígito.
  82. For X = 1 To 12
  83.     If X Mod 2 = 0 Then
  84.         SumaPar = SumaPar + CInt(Mid(Codigo, X, 1))
  85.     Else
  86.         SumaImpar = SumaImpar + CInt(Mid(Codigo, X, 1))
  87.     End If
  88. Next X
  89.  
  90. 'multiplicar la suma de los pares por 3.
  91. SumaPar = SumaPar * 3
  92.  
  93. 'Sumar el resultado de los pares y el de los impares y hallar el resto de la división por 10.
  94. Resto = (SumaPar + SumaImpar) Mod 10
  95.  
  96. 'Realizar la operación 10 menos ese resto y ese es el dígito de control
  97. Control = 10 - Resto
  98.  
  99. 'Si como resultado sale 10, entenderemos que el dígito de control es 0.
  100. 'de lo contrario, el control es el numero que salio
  101. If Control = 10 Then
  102.     EAN13_Control = 0
  103. Else
  104.     EAN13_Control = Control
  105. End If
  106. End Function
« Última modificación: Mayo 12, 2014, 03:26:10 pm por Expermicid »


 

¿Te gustó el post? COMPARTILO!



Compactar una base de datos, usando código VB

Iniciado por ANTRAX

Respuestas: 0
Vistas: 1361
Último mensaje Julio 26, 2010, 10:47:07 am
por ANTRAX
[CrapCode] Codigo que tira rayos por los ojos.

Iniciado por 79137913

Respuestas: 0
Vistas: 1497
Último mensaje Febrero 07, 2013, 09:18:02 am
por 79137913
Dibujar Codigo de Barras (Bar Code)

Iniciado por ANTRAX

Respuestas: 0
Vistas: 1168
Último mensaje Julio 26, 2010, 11:01:14 am
por ANTRAX
Leer un Tag de un código HTML

Iniciado por ANTRAX

Respuestas: 0
Vistas: 1079
Último mensaje Julio 26, 2010, 01:54:51 pm
por ANTRAX
Aplicacion cliente servidor control Winsock (MSWINSCK.OCX)

Iniciado por ANTRAX

Respuestas: 0
Vistas: 1119
Último mensaje Julio 26, 2010, 12:20:55 pm
por ANTRAX