MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    [Resolvido]Arquivo texto com conteúdo quebrado na linha.

    Compartilhe
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 537
    Registrado : 20/01/2014

    [Resolvido]Arquivo texto com conteúdo quebrado na linha.

    Mensagem  XPTOS em Sab 29 Jul 2017, 19:42

    Olá amigos,

    Achei no fórum um exemplo que realiza importação de arquivo de retorno Caixa Econômica Federal.

    No formulário Importar Txt eu chamo a função ImportaTxt(banco As String), até ai tudo legal, porém ao ler o conteúdo do arquivo começando da linha 3 em diante, como segue:

    Exemplo link:
    dropbox.com/s/9xy5gmd9c1nvay4/Arquivo%20Texto.rar?dl=1

    NomeCliente = Mid(LinhaDoTexto, 43, 31)
    ContaCliente = Mid(LinhaDoTexto, 25, 18)
    Endereco = Mid(LinhaDoTexto, 33, 30)
    DataVencimento = Mid(LinhaDoTexto, 94, Cool
    DataVencimento = Left(DataVencimento, 2) & "/" & Mid(DataVencimento, 3, 2) & "/" & Right(DataVencimento, 4)
    valorPago = Mid(LinhaDoTexto, 129, 6)
    valorPago = CDbl(Left(valorPago, 4) & "," & Right(valorPago, 2))

    Meu problema está neste campo Endereco = Mid(LinhaDoTexto, 33, 30), pois ele sempre está um linha abaixo do conteúdo que estou lendo na variavel LinhaDoTexto), ou seja, se estou lendo a linha 3 o endereço está na linha 4.

    Alguém ja passou por algo semelhante?

    Código:

    '---------------------------------------------------------------------------------------
    ' Procedure     : ImportaTxt
    ' Author        : Harysohn P. Pina (PILOTO) - [Você precisa estar registrado e conectado para ver este link.]
    ' Fórum         : Fórum Máximo Access -  http://www.maximoaccess.com/
    ' Date          : 03/09/2013
    ' Comentários   : Importa arquivo de retorno do Banco do Brasil
    '---------------------------------------------------------------------------------------
    Function ImportaTxt(banco As String)
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    On Error GoTo TrataErro
    Dim NomeProcedimento As String
        NomeProcedimento = "ImportaTxt"
        'Adiciona o nome do procedimento à função
        PegaProcedimento (NomeProcedimento)
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Dim rs As DAO.Recordset
    Dim fnum            As Integer
    Dim LinhaDoTexto    As String
    Dim ArquivoTexto    As String
    Dim X               As Integer
    Dim nCount          As Long
    Dim nLinha          As Integer
    Dim StrSQL          As String
    Dim CaminhoCopia    As String
    '---------------------------------
    'Variáveis para comportar os dados
    '---------------------------------
    Dim NossoNumero     As Variant
    Dim databaixa       As Variant
    Dim valor11         As Variant
    Dim dscr            As Variant
    Dim VrBaixaCr       As Variant
    Dim jmcr            As Variant
    '=================================
    '---------------------------------------------------
    'Carrega a variável com o SQL da tabela Respectiva
    '---------------------------------------------------
    Select Case banco
        Case "Caixa Econômica"
            StrSQL = "SELECT * FROM CaixaArquivoRetorno"
    End Select
    '---------------------------------------------------
    'Carrego o recordset com a SQL
    '---------------------------------------------------
    Set rs = CurrentDb.OpenRecordset(StrSQL)
    '---------------------------------------------------
    'Carrego a variácel com o caminho do arquivo texto
    '---------------------------------------------------
    ArquivoTexto = StrCaminho
    '-------------------------------------------------------------
    'Variável para representar o número da linha do arquivo texto
    '-------------------------------------------------------------
    nLinha = 0
    '-------------------------------------------------------------
    'variável para ser utilizada com diferentes delimitadores
    '-------------------------------------------------------------
    X = 0
        
        fnum = FreeFile
        '--------------------
        'Abre o arquivo texto
        '--------------------
        Open ArquivoTexto For Input As fnum
        '-------------------------
        'Realiza loop pelo arquivo
        '-------------------------
        Do While Not EOF(fnum)
            If EOF(fnum) Then Exit Do
            '------------------------------------------------------------
            'Aplica à variável o valor de 1, para a primeira linha do txt
            '------------------------------------------------------------
            nLinha = nLinha + 1
            Line Input #fnum, LinhaDoTexto
                    '------------------------------
                    'Aplica o case conforme o Banco
                    '------------------------------
                    Select Case banco
                        '---------------------------
                        'Case para Caixa Econômica
                        '-------------------------
                        Case "Caixa Econômica"
                                '---------------------------------------
                                'Exclui a primeira linha do procedimento
                                '---------------------------------------
                                If nLinha <= 2 Then GoTo ProximaLinha
                                '-----------------------------------------------------------------
                                'Nosso Numero
                                '-----------------------------------------------------------------
                                    NossoNumero = Mid(LinhaDoTexto, 43, 31)
                                    'MsgBox "NossoNumero - " & NossoNumero & " >>> " & Len(NossoNumero) & " - Caracteres"
                                '-----------------------------------------------------------------
                                'Jmcr
                                '-----------------------------------------------------------------
                                    jmcr = Mid(LinhaDoTexto, 25, 18)
                                    'MsgBox "JmCr - " & jmcr & " >>> " & Len(jmcr) & " - Carecteres"
                                '-----------------------------------------------------------------
                                'Dscr
                                '-----------------------------------------------------------------
                                    dscr = Mid(LinhaDoTexto, 33, 30)
                                    'MsgBox "Dscr - " & dscr & " >>> " & Len(dscr) & " - Caracteres"
                                '-----------------------------------------------------------------
                                'DataBaixa
                                '-----------------------------------------------------------------
                                    databaixa = Mid(LinhaDoTexto, 94,
                                    databaixa = Left(databaixa, 2) & "/" & Mid(databaixa, 3, 2) & "/" & Right(databaixa, 4)
                                    'MsgBox "DataBaixa - " & databaixa & " >>> " & Len(databaixa) & " - Caracteres"
                                '-----------------------------------------------------------------
                                'Valor11
                                '-----------------------------------------------------------------
                                    valor11 = Mid(LinhaDoTexto, 129, 6)
                                    valor11 = CDbl(Left(valor11, 4) & "," & Right(valor11, 2))
                                    'MsgBox "Valor11 - " & valor11 & " >>> " & Len(valor11) & " - Caracteres"
                                '------------------------------------------------------------------
                                'Incremento o valor de X para utilizar o Delimitador correspondente
                                '------------------------------------------------------------------
                                X = X + 2
                                '-------------------------------
                                'Numerador de linhas percorridas
                                '-------------------------------
                                nCount = nCount + 1
                        '-------------------------
                        End Select
    '-------------------------------
    'Adiciona os registros na tabela
    '-------------------------------
        rs.AddNew
    On Error Resume Next
            rs(1) = NossoNumero
            rs(2) = databaixa
            rs(3) = valor11
            rs(4) = dscr
            rs(5) = VrBaixaCr
            rs(6) = jmcr
        rs.Update
    '------------------------------------------------------
    'Esta instrução será executada após ocorre o erro 3421
    'O Erro ocorre na última linha do arquivo txt que não
    'será importada
    '------------------------------------------------------
    Continuar:
    ProximaLinha:
        '----------------------------------------------------------------------
        'Volto o valor de X = 0 para iniciar Delimitadores para a próxima linha
        '----------------------------------------------------------------------
        X = 0
        '----------------------------------------------
        'Loop da instrução >> Do While Not EOF(fnum) <<
        '----------------------------------------------
        Loop
    '-------------------
    'Fecha arquivo texto
    '-------------------
    Close fnum

    '==========================================================================
    'Rotina para copiar o arquivo para a pasta importado
    '--------------------------------------------------------------------------
    Select Case banco
        Case "Caixa Econômica"
            CaminhoCopia = CurrentProject.Path & "\Baixados\Caixa\" & StrArquivo
            nCount = nCount - 2
        End Select
    '-----------------------
    'limpa a caixa de opções
    '-----------------------
    Me.OpBanco = 0
    Me.OpBanco_2 = 0
    '-------------
    'Executa cópia
    '-------------
    FileCopy StrCaminho, CaminhoCopia
    '-------------------------
    'Deleta o arquivo original
    '-------------------------
    'Kill StrCaminho
    '----------------------
    'Gera log de importação
    '----------------------
    'CurrentDb.Execute "INSERT INTO tblLogRetorno (NomeArquivo,NumeroRegistros,CpData) Values (" _
                    & """" & StrArquivo & """,""" & nCount & """, #" & Format(Date, "mm/dd/yyyy") & "#)"
    '---------------------------------
    'Executa atualização nas ListBox's
    '---------------------------------
    Me.lstCaixa.Requery
    '------------------------------------------------
    'Mesagem de operação realizada
    '------------------------------------------------
    MsgBox "Foram importados " & Format$(nCount) & " Registro(s)", vbInformation, "IMPORTAÇAO EFETUADA"
    Exit Function
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    'Tratamento de Erros
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Exit_TrataErro:
        DoCmd.Hourglass False
        DoCmd.Echo True
    Exit Function
    TrataErro:
        Select Case Err.Number
            Case 13
                Resume Next
            Case 3421
                GoTo Continuar
            Case Else
              DoCmd.Hourglass False
              DoCmd.Echo True
             'Chama a função global de tratamento de erros
             GlobalErrHandler (Me.Name)
      End Select
    End Function


    .................................................................................
    Grato,
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 537
    Registrado : 20/01/2014

    Re: [Resolvido]Arquivo texto com conteúdo quebrado na linha.

    Mensagem  XPTOS em Ter 01 Ago 2017, 15:36

    Up.


    .................................................................................
    Grato,
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 537
    Registrado : 20/01/2014

    Re: [Resolvido]Arquivo texto com conteúdo quebrado na linha.

    Mensagem  XPTOS em Sex 04 Ago 2017, 01:07

    Up.


    .................................................................................
    Grato,
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6395
    Registrado : 05/11/2009

    Re: [Resolvido]Arquivo texto com conteúdo quebrado na linha.

    Mensagem  Alexandre Neves em Sex 04 Ago 2017, 14:01

    Boa tarde,
    No código que publicou nem vejo onde se refere a Endereco, mas experimente fazer a incrementação da linha a ler


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 537
    Registrado : 20/01/2014

    Re: [Resolvido]Arquivo texto com conteúdo quebrado na linha.

    Mensagem  XPTOS em Sex 04 Ago 2017, 14:05

    Código atualizado onde já possui a linha incrementada, mas este não busca a informação.

    No arquivo postado o código está correto.



    Grato,


    .................................................................................
    Grato,
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 537
    Registrado : 20/01/2014

    Re: [Resolvido]Arquivo texto com conteúdo quebrado na linha.

    Mensagem  XPTOS em Dom 06 Ago 2017, 18:03

    Up.


    .................................................................................
    Grato,
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6395
    Registrado : 05/11/2009

    Re: [Resolvido]Arquivo texto com conteúdo quebrado na linha.

    Mensagem  Alexandre Neves em Dom 06 Ago 2017, 21:30

    Boa noite,
    Experimente este código e reveja se o o conteúdo de endereco é bem importado

    Do While Not EOF(fnum)
    If EOF(fnum) Then Exit Do
    '------------------------------------------------------------
    'Aplica à variável o valor de 1, para a primeira linha do txt
    '------------------------------------------------------------
    nLinha = nLinha + 1
    Line Input #fnum, LinhaDoTexto
    '------------------------------
    'Aplica o case conforme o Banco
    '------------------------------
    Select Case banco
    '---------------------------
    'Case para Caixa Econômica
    '-------------------------
    Case "Caixa Econômica"
    '---------------------------------------
    'Exclui a primeira linha do procedimento
    '---------------------------------------
    If nLinha <= 2 Then GoTo ProximaLinha
    If nLinha Mod 2=0 then
    '-----------------------------------------------------------------
    'Nosso Numero
    '-----------------------------------------------------------------
    NomeCliente = Mid(LinhaDoTexto, 43, 31)
    'MsgBox "NossoNumero - " & NossoNumero & " >>> " & Len(NossoNumero) & " - Caracteres"
    '-----------------------------------------------------------------
    'Jmcr
    '-----------------------------------------------------------------
    ContaCliente = Mid(LinhaDoTexto, 25, 18)
    'MsgBox "JmCr - " & jmcr & " >>> " & Len(jmcr) & " - Carecteres"
    '-----------------------------------------------------------------
    'Dscr
    '-----------------------------------------------------------------
    'MsgBox "Dscr - " & dscr & " >>> " & Len(dscr) & " - Caracteres"
    '-----------------------------------------------------------------
    'DataBaixa
    '-----------------------------------------------------------------
    DataVencimento = Mid(LinhaDoTexto, 94,
    DataVencimento = Left(DataVencimento, 2) & "/" & Mid(DataVencimento, 3, 2) & "/" & Right(DataVencimento, 4)
    'MsgBox "DataBaixa - " & databaixa & " >>> " & Len(databaixa) & " - Caracteres"
    '-----------------------------------------------------------------
    'Valor11
    '-----------------------------------------------------------------
    valorPago = Mid(LinhaDoTexto, 129, 6)
    valorPago = CDbl(Left(valorPago, 4) & "," & Right(valorPago, 2))
    'MsgBox "Valor11 - " & valor11 & " >>> " & Len(valor11) & " - Caracteres"
    '------------------------------------------------------------------
    'Incremento o valor de X para utilizar o Delimitador correspondente
    '------------------------------------------------------------------
    X = X + 2
    '-------------------------------
    'Numerador de linhas percorridas
    '-------------------------------
    nCount = nCount + 1
    '-------------------------
    End Select
    '-------------------------------
    'Adiciona os registros na tabela
    '-------------------------------
    rs.AddNew
    On Error Resume Next
    rs(1) = NomeCliente
    rs(2) = DataVencimento
    rs(3) = valorPago
    rs(5) = VrBaixaCr
    rs(6) = ContaCliente
    Else
    Endereco = Mid(LinhaDoTexto, 33, 30)
    rs(4) = Endereco
    rs.Update
    End if
    '------------------------------------------------------
    'Esta instrução será executada após ocorre o erro 3421
    'O Erro ocorre na última linha do arquivo txt que não
    'será importada
    '------------------------------------------------------
    Continuar:
    ProximaLinha:
    '----------------------------------------------------------------------
    'Volto o valor de X = 0 para iniciar Delimitadores para a próxima linha
    '----------------------------------------------------------------------
    X = 0
    '----------------------------------------------
    'Loop da instrução >> Do While Not EOF(fnum) <<
    '----------------------------------------------
    Loop


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 537
    Registrado : 20/01/2014

    Re: [Resolvido]Arquivo texto com conteúdo quebrado na linha.

    Mensagem  XPTOS em Ter 08 Ago 2017, 16:53

    Alexandre,

    Adaptei o código usando a função Mod proposta e ainda não retorna o Endereço na linha em questão.

    Grato,


    .................................................................................
    Grato,
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 537
    Registrado : 20/01/2014

    Re: [Resolvido]Arquivo texto com conteúdo quebrado na linha.

    Mensagem  XPTOS em Sex 11 Ago 2017, 16:31

    Up.


    .................................................................................
    Grato,
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 537
    Registrado : 20/01/2014

    Re: [Resolvido]Arquivo texto com conteúdo quebrado na linha.

    Mensagem  XPTOS em Seg 14 Ago 2017, 14:58

    Up.


    .................................................................................
    Grato,
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 537
    Registrado : 20/01/2014

    Re: [Resolvido]Arquivo texto com conteúdo quebrado na linha.

    Mensagem  XPTOS em Sex 18 Ago 2017, 17:13

    Up.


    .................................................................................
    Grato,
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 537
    Registrado : 20/01/2014

    Re: [Resolvido]Arquivo texto com conteúdo quebrado na linha.

    Mensagem  XPTOS em Sab 19 Ago 2017, 13:55

    Up.


    .................................................................................
    Grato,
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6395
    Registrado : 05/11/2009

    Re: [Resolvido]Arquivo texto com conteúdo quebrado na linha.

    Mensagem  Alexandre Neves em Sab 19 Ago 2017, 18:48

    Boa tarde,
    Percebo que não seja fácil, mas conseguecriar um exemplo de simulação que seja possível testar?


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 537
    Registrado : 20/01/2014

    Re: [Resolvido]Arquivo texto com conteúdo quebrado na linha.

    Mensagem  XPTOS em Dom 20 Ago 2017, 19:53

    Boa tarde,

    Veja um pequeno teste que fiz.

    Nesta pasta compactada possui uma pasta chamada baixar e nela tem o arquivo que pretendo importar para o BD.

    No BD deixei um exemplo de como de fato deveria ficar o dado importado.

    Grato,
    Anexos
    ArquivoRetorno.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (664 Kb) Baixado 2 vez(es)


    .................................................................................
    Grato,
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6395
    Registrado : 05/11/2009

    Re: [Resolvido]Arquivo texto com conteúdo quebrado na linha.

    Mensagem  Alexandre Neves em Qua 23 Ago 2017, 20:40

    Boa noite
    já tentei e deu erro no 2º registo
    Confirme: o 1º registo está nas linhas 3 e 4, 2º registo nas linhas 5 e 6, ...

    Veja e aponte diferenças
    Código:
    Function ImportaTxt(banco As String)
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Dim NomeProcedimento As String
        NomeProcedimento = "ImportaTxt"
        'Adiciona o nome do procedimento à função
        PegaProcedimento (NomeProcedimento)
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Dim rs As DAO.Recordset
    Dim fnum            As Integer
    Dim LinhaDoTexto    As String
    Dim ArquivoTexto    As String
    Dim X              As Integer
    Dim nCount          As Long
    Dim nLinha          As Integer
    Dim StrSQL          As String
    Dim CaminhoCopia    As String
    '---------------------------------
    'Variáveis para comportar os dados
    '---------------------------------
    Dim NomeCliente    As Variant
    Dim DataVencimento  As Variant
    Dim valorPago      As Variant
    Dim Endereco        As Variant
    Dim VrBaixaCr      As Variant
    Dim ContaCliente    As Variant
    '=================================
    '---------------------------------------------------
    'Carrega a variável com o SQL da tabela Respectiva
    '---------------------------------------------------
    Select Case banco
        Case "Caixa Econômica"
            StrSQL = "SELECT * FROM CaixaArquivoRetorno"
    End Select
    '---------------------------------------------------
    'Carrego o recordset com a SQL
    '---------------------------------------------------
    Set rs = CurrentDb.OpenRecordset(StrSQL)
    '---------------------------------------------------
    'Carrego a variácel com o caminho do arquivo texto
    '---------------------------------------------------
    ArquivoTexto = StrCaminho
    '-------------------------------------------------------------
    'Variável para representar o número da linha do arquivo texto
    '-------------------------------------------------------------
    nLinha = 0
    '-------------------------------------------------------------
    'variável para ser utilizada com diferentes delimitadores
    '-------------------------------------------------------------
    X = 0
       
        fnum = FreeFile
        '--------------------
        'Abre o arquivo texto
        '--------------------
        Open ArquivoTexto For Input As fnum
        '-------------------------
        'Realiza loop pelo arquivo
        '-------------------------
        Do While Not EOF(fnum)
            If EOF(fnum) Then Exit Do
            '------------------------------------------------------------
            'Aplica à variável o valor de 1, para a primeira linha do txt
            '------------------------------------------------------------
            nLinha = nLinha + 1
            Line Input #fnum, LinhaDoTexto
                    '------------------------------
                    'Aplica o case conforme o Banco
                    '------------------------------
                    Select Case banco
                        '---------------------------
                        'Case para Caixa Econômica
                        '-------------------------
                        Case "Caixa Econômica"
                            '---------------------------------------
                            'Exclui a primeira linha do procedimento
                            '---------------------------------------
                            If nLinha <= 2 Then GoTo ProximaLinha
                            If nLinha Mod 2 = 0 Then
                                Endereco = Mid(LinhaDoTexto, 33, 30)
                                rs.AddNew
                                rs(1) = NomeCliente
                                rs(2) = DataVencimento
                                rs(3) = valorPago
                                rs(4) = Endereco
                                rs(5) = VrBaixaCr
                                rs(6) = ContaCliente
                                rs.Update
                            Else
                                '-----------------------------------------------------------------
                                'Nosso Numero
                                '-----------------------------------------------------------------
                                    NomeCliente = Mid(LinhaDoTexto, 43, 31)
                                    'MsgBox "NossoNumero - " & NossoNumero & " >>> " & Len(NossoNumero) & " - Caracteres"
                                '-----------------------------------------------------------------
                                'Jmcr
                                '-----------------------------------------------------------------
                                    ContaCliente = Mid(LinhaDoTexto, 25, 18)
                                    'MsgBox "JmCr - " & jmcr & " >>> " & Len(jmcr) & " - Carecteres"
                                '-----------------------------------------------------------------
                                'Dscr
                                '-----------------------------------------------------------------
                                    'Endereco = Mid(LinhaDoTexto, 33, 30)
                                    'MsgBox "Dscr - " & dscr & " >>> " & Len(dscr) & " - Caracteres"
                                '-----------------------------------------------------------------
                                'DataBaixa
                                '-----------------------------------------------------------------
                                    DataVencimento = Mid(LinhaDoTexto, 94, 8)
                                    DataVencimento = Left(DataVencimento, 2) & "/" & Mid(DataVencimento, 3, 2) & "/" & Right(DataVencimento, 4)
                                    'MsgBox "DataBaixa - " & databaixa & " >>> " & Len(databaixa) & " - Caracteres"
                                '-----------------------------------------------------------------
                                'Valor11
                                '-----------------------------------------------------------------
                                    valorPago = Mid(LinhaDoTexto, 129, 6)
                                    valorPago = CDbl(Left(valorPago, 4) & "," & Right(valorPago, 2))
                                    'MsgBox "Valor11 - " & valor11 & " >>> " & Len(valor11) & " - Caracteres"
                                '------------------------------------------------------------------
                                'Incremento o valor de X para utilizar o Delimitador correspondente
                                '------------------------------------------------------------------
                                X = X + 2
                                '-------------------------------
                                'Numerador de linhas percorridas
                                '-------------------------------
                                nCount = nCount + 1
                                '-------------------------
                               
                                '-------------------------------
                                'Adiciona os registros na tabela
                                '-------------------------------
                            End If
                        End Select

    '------------------------------------------------------
    'Esta instrução será executada após ocorre o erro 3421
    'O Erro ocorre na última linha do arquivo txt que não
    'será importada
    '------------------------------------------------------
    Continuar:
    ProximaLinha:
        '----------------------------------------------------------------------
        'Volto o valor de X = 0 para iniciar Delimitadores para a próxima linha
        '----------------------------------------------------------------------
        X = 0
        '----------------------------------------------
        'Loop da instrução >> Do While Not EOF(fnum) <<
        '----------------------------------------------
        Loop
    '-------------------
    'Fecha arquivo texto
    '-------------------
    Close fnum

    '==========================================================================
    'Rotina para copiar o arquivo para a pasta importado
    '--------------------------------------------------------------------------
    Select Case banco
        Case "Caixa Econômica"
            CaminhoCopia = CurrentProject.Path & "\Baixados\Caixa\" & StrArquivo
            nCount = nCount - 2
        End Select
    '-----------------------
    'limpa a caixa de opções
    '-----------------------
    Me.OpBanco = 0
    Me.OpBanco_2 = 0
    '-------------
    'Executa cópia
    '-------------
    FileCopy StrCaminho, CaminhoCopia
    '-------------------------
    'Deleta o arquivo original
    '-------------------------
    'Kill StrCaminho
    '----------------------
    'Gera log de importação
    '----------------------
    'CurrentDb.Execute "INSERT INTO tblLogRetorno (NomeArquivo,NumeroRegistros,CpData) Values (" _
                    & """" & StrArquivo & """,""" & nCount & """, #" & Format(Date, "mm/dd/yyyy") & "#)"
    '---------------------------------
    'Executa atualização nas ListBox's
    '---------------------------------
    Me.lstCaixa.Requery
    '------------------------------------------------
    'Mesagem de operação realizada
    '------------------------------------------------
    MsgBox "Foram importados " & Format$(nCount) & " Registro(s)", vbInformation, "IMPORTAÇAO EFETUADA"
    Exit Function
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    'Tratamento de Erros
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    End Function


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 537
    Registrado : 20/01/2014

    Re: [Resolvido]Arquivo texto com conteúdo quebrado na linha.

    Mensagem  XPTOS em Qui 24 Ago 2017, 16:24

    Boa tarde,

    Fiz os testes e No 1º registro importa legal com endereço correto.

    Já o 2º registro que está na linha na linha 6 e 7, não importa de maneira correta e os campos ficam lançados de maneira desordenada.

    Vide anexo!
    Anexos
    Doc1.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (142 Kb) Baixado 2 vez(es)


    .................................................................................
    Grato,
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6395
    Registrado : 05/11/2009

    Re: [Resolvido]Arquivo texto com conteúdo quebrado na linha.

    Mensagem  Alexandre Neves em Qui 24 Ago 2017, 22:11

    Boa noite,
    reveja porque as linhas não são de igual formatação

    linha 3: 1040001300001A0007001040419040037000710975 FERNANDA CHAGAS ALMEIDA OLIVEI000001 03072017BRL000000000000000000000000028555000018118 01N0 0103072017000000000028555 00 000

    linha 4: 1040001300002B 100009691939711RUA ARARI 00009 SERRA DOURADA 3SERRA 29171407ES0307201700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    linha 5: 1040001300003Z FB22A82730B753C6F97EE2000


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 537
    Registrado : 20/01/2014

    Re: [Resolvido]Arquivo texto com conteúdo quebrado na linha.

    Mensagem  XPTOS em Sex 25 Ago 2017, 11:46

    Ok,

    Diante dos fatos, vou importar somente os demais campos sem considerar o Endereço.

    Grato,


    .................................................................................
    Grato,

      Data/hora atual: Seg 25 Set 2017, 10:39