Cómo validar un número de código de barras en formato EAN13
Por Enrique Martínez Montejo
Última revisión: 07/05/2006
 

La función genérica que presento, sirve para validar el número de un código de barras completo en el formato básico EAN 13, por lo que la longitud de la cadena que pase en el argumento de la función, deberá de ser de 13 caracteres; cualquier otra longitud, o la inclusión de caracteres alfabéticos, hace que la función devuelva una excepción del tipo System.ArgumentException, por lo que le aconsejo que incluya la llamada en un bloque Try ... End Try, o verifique primeramente la longitud de la cadena numérica.

Para validar el dígito de control del número, la función hace una llamada a la función GetDCBarCodEAN13, la cual podrá obtenerla en el siguiente enlace: Cómo obtener el Dígito de Control de un código de barras EAN13.

Public Function ValidateBarCodEAN13(ByVal number As String) As Boolean

    '*******************************************************************
    ' Nombre:        ValidateBarCodEAN13
    '                por Enrique Martínez Montejo - 07/05/2006
    '
    ' Versión:       1.0
    '
    ' Finalidad:     Validar el dígito de control de un código de
    '                barras en formato EAN13.
    '
    ' Entradas:
    '     number:    String. El número que se desea validar.
    '
    ' Resultados:
    '     Boolean:   True/False
    '*******************************************************************

    ' Si el número no cumple con el formato EAN13,
    ' la función devolverá una excepción de argumentos
    ' no válidos.
    '

    If (number.Length <> 13) Then
        Throw New System.ArgumentException
    Else
        Dim ch As Char
        For Each ch In number
            If (Not Char.IsNumber(ch)) Then
                Throw New System.ArgumentException
            End If
        Next
    End If

    Dim digito, lastDigit As Integer

    ' Último dígito del número.
    '

    lastDigit = CInt(number.Substring(number.Length - 1, 1))

    ' Calculo el dígito de control del número pasado
    '

    digito = GetDCBarCodEAN13(number.Substring(0, 12))
   
    ' Compruebo si los dos dígitos son iguales
    '

    If (digito = lastDigit) Then Return True

End Function

 

Cómo validar un número de código de barras en formato EAN13

 

Otros enlaces de interés:

Cómo obtener el Dígito de Control de un código de barras EAN13

Indice de la Biblioteca de Funciones de Códigos de Control


Enrique Martínez Montejo - 2006

NOTA: La información contenida en este artículo, así como el código fuente incluido en el mismo, se proporciona COMO ESTÁ, sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo explicado, recomendado o sugerido en el presente artículo.

NOTE: The information contained in this article and source code included therein, is provided AS IS without warranty of any kind, and confers no rights. You assume any risk to implement, use or run it explained, recommended or suggested in this article.