MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

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


2 participantes

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

    XPTOS
    XPTOS
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  XPTOS 29/7/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) - Harysohn@hotmail.com
    ' 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,
    XPTOS
    XPTOS
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  XPTOS 1/8/2017, 15:36

    Up.


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


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  XPTOS 4/8/2017, 01:07

    Up.


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


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Alexandre Neves 4/8/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
    XPTOS
    XPTOS
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  XPTOS 4/8/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,
    XPTOS
    XPTOS
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  XPTOS 6/8/2017, 18:03

    Up.


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


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Alexandre Neves 6/8/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
    XPTOS
    XPTOS
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  XPTOS 8/8/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,
    XPTOS
    XPTOS
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  XPTOS 11/8/2017, 16:31

    Up.


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


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  XPTOS 14/8/2017, 14:58

    Up.


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


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  XPTOS 18/8/2017, 17:13

    Up.


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


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  XPTOS 19/8/2017, 13:55

    Up.


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


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Alexandre Neves 19/8/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
    XPTOS
    XPTOS
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  XPTOS 20/8/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,


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


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Alexandre Neves 23/8/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
    XPTOS
    XPTOS
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  XPTOS 24/8/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!


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


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Alexandre Neves 24/8/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
    XPTOS
    XPTOS
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  XPTOS 25/8/2017, 11:46

    Ok,

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

    Grato,


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

    Conteúdo patrocinado


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

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 21/11/2024, 23:13