ISBN - Numeração de Livros

    Function CalculaDVISBN(ByVal ISBN As String) As String
        Dim i As Integer, chksum As Integer = 0
        Dim factor As Integer = 3

        For i = 0 To 11
            factor = 4 - factor
            chksum += factor * Convert.ToInt16(ISBN.Substring(i, 1))
        Next
        Return (10 - (chksum Mod 10)).ToString
    End Function
End Module
Imports System.IO 'necessária a leitura de arquivo texto

Module Validadores

    Public Function E_Numerico(dado As String) As Boolean
        If IsNumeric(dado) = False Then
            Return False
        Else
            Return True
        End If
    End Function

    Public Function E_Data(dado As String) As Boolean
        If IsDate(dado) = False Then
            Return False
        Else
            Return True
        End If
    End Function

    Public Function E_Nulo(dado As Object) As Boolean
        If IsDBNull(dado) = False Then
            Return False
        Else
            Return True
        End If
    End Function

    Public Function E_Nada(dado As String) As Boolean
        If IsNothing(dado) = False Then
            Return False
        Else
            Return True
        End If
    End Function

    Public Function valida_cpf_cnpj(ByVal ID As String) As Boolean
        ' devolve true se o id é um cpf ou cnpj válido
        Dim flg As Boolean

        flg = E_CNPJ(ID)
        If flg = True Then
            Return True
        End If

        flg = E_CPF(ID)
        If flg = True Then
            Return True
        End If

        flg = E_CEI(ID)
        If flg = True Then
            Return True
        End If

        Return False
    End Function


    ''' <summary>
    ''' Se retornar true significa que todos os documentos tem CPF ou CNPJ válidos
    ''' </summary>
    ''' <returns></returns>
    Public Function Verifica_CGC_CPF_CEI_Sindical(arquivo_importacao As String) As Boolean
        ' lê o arquivo_importação de guias - imposto sindical e verifica se todos os CGCs e CPFs são válidos

        Dim a As Integer
        Dim fileReader As StreamReader
        Dim Dado As String

        Dim b As String = "" 'campo a ser validado 'coloquei aqui para não dar erro de compilação

        Try
            fileReader = File.OpenText(arquivo_importacao)
            a = 0

            Dado = fileReader.ReadLine 'pulando o header

            While fileReader.EndOfStream = False
                Dado = fileReader.ReadLine
                If Left(Dado, 1) <> "9" And Dado <> "" Then '9=Trailler
                    'Decodifica_Detalhe_Sindical_Novo(Dado) decodifica os campos dos registros lidos

                    If Not valida_cpf_cnpj(b) Then 'arquivo_importacao As String
                        MsgBox("Número de documento inválido : " + b + vbCrLf + "Registro : " + CStr(a)) 'vDetalhe_Sindical.NUM_CONTRIB
                        'fileReader.Close()
                        'Return False
                    End If

                End If
                a = a + 1
            End While

            fileReader.Close()
        Catch ex As Exception
            MsgBox("Ocorreu um erro : " + Err.Description, vbCritical, "Function Verifica_CGC_CPF_CEI_Sindical")
        End Try

        Return True

    End Function


End Module