none
Como alterar uma linha especifica de um arquivo TXT com VBA RRS feed

  • Pergunta

  • Pessoal

    Estou a horas procurando uma solução para alterar uma linha especifica de um arquivo TXT com VBA e não encontro solução. Estou criando uma ferramenta no VBA excel para manipular um arquivo de texto e, ao final, salva-lo com uma alteração, mas não consigo modificar o arquivo e salvar.

    Vejam oque consegui:

    Open CaminhoArquivo For Append As arquivo
        Do While Not EOF(arquivo)
        Line Input #arquivo, TextoProximaLinha
            If Posicao_Linha = Posicao_array Then
            Mid(TextoProximaLinha, 33, 6) = Resultado_final
            Print #arquivo, TextoProximaLinha = Resultado_final
            End If
        Posicao_Linha = Posicao_Linha + 1
        Loop
        Close #arquivo

    Minha expectativa era conseguir fazer a alteração na linha "Print #arquivo..." mas não está acontecendo.

    Obrigada!

    segunda-feira, 6 de janeiro de 2020 00:15

Respostas

  • Jeniffer Oliveira,

       Pelo que eu saiba, os arquivos ".TXT" precisam ser completamente reescritos, não tem como você alterar somente uma linha no meio de muitas linhas. Isso acontece pq não é um XML, JSON ou Banco de Dados.
       Você precisa ler cada linha e gravar em outro arquivo. Onde você quer alterar, gravar diferente nesse novo arquivo conforme você deseja.
       Veja mais em:

    ==================================================
    0232 – Manipulando arquivos txt via VBA – Parte 2

    Sub ImportTxtFile()
    Dim strTextLine
    Dim strTextFile
    Dim intFileNumber
    
    'Nome completo do arquivo a ser aberto
    strTextFile = "C:\USERS\ADILSON\DESKTOP\0231TXT.TXT"
    
    'Criar numeração
    intFileNumber = 1
    
    'Criar conexão com o arquivo txt
    Open strTextFile For Input As #intFileNumber
    
    'Loop para percorrer as linhas do arquivo até o seu final
    Do While Not EOF(intFileNumber)
       Line Input #intFileNumber, strTextLine
    Loop
    
    'Fechar a conexão com o arquivo
    Close #intFileNumber
    
    End Sub

    https://usuariosdoexcel.wordpress.com/2016/03/16/0228-manipulando-arquivos-txt-via-vba-parte-2/
    ==================================================
    VBA – Lendo um arquivo texto linha a linha (sem FileSystemObject)

    https://www.tomasvasquez.com.br/blog/microsoft-office/vba-lendo-um-arquivo-texto-linha-a-linha-sem-filesystemobject/
    ==================================================
    [Resolvido] Como ler arquivos TXT no VBA ? - Visual Basic ...

    https://forum.imasters.com.br/topic/357818-resolvido%C2%A0como-ler-arquivos-txt-no-vba/
    ==================================================


    []'s,
    Fabio I.
    • Sugerido como Resposta IgorFKModerator quinta-feira, 9 de janeiro de 2020 16:28
    • Marcado como Resposta Jeniffer Oliveira terça-feira, 14 de janeiro de 2020 01:26
    • Editado Fabio I terça-feira, 14 de janeiro de 2020 09:29
    segunda-feira, 6 de janeiro de 2020 12:25

Todas as Respostas

  • Jeniffer Oliveira,

       Pelo que eu saiba, os arquivos ".TXT" precisam ser completamente reescritos, não tem como você alterar somente uma linha no meio de muitas linhas. Isso acontece pq não é um XML, JSON ou Banco de Dados.
       Você precisa ler cada linha e gravar em outro arquivo. Onde você quer alterar, gravar diferente nesse novo arquivo conforme você deseja.
       Veja mais em:

    ==================================================
    0232 – Manipulando arquivos txt via VBA – Parte 2

    Sub ImportTxtFile()
    Dim strTextLine
    Dim strTextFile
    Dim intFileNumber
    
    'Nome completo do arquivo a ser aberto
    strTextFile = "C:\USERS\ADILSON\DESKTOP\0231TXT.TXT"
    
    'Criar numeração
    intFileNumber = 1
    
    'Criar conexão com o arquivo txt
    Open strTextFile For Input As #intFileNumber
    
    'Loop para percorrer as linhas do arquivo até o seu final
    Do While Not EOF(intFileNumber)
       Line Input #intFileNumber, strTextLine
    Loop
    
    'Fechar a conexão com o arquivo
    Close #intFileNumber
    
    End Sub

    https://usuariosdoexcel.wordpress.com/2016/03/16/0228-manipulando-arquivos-txt-via-vba-parte-2/
    ==================================================
    VBA – Lendo um arquivo texto linha a linha (sem FileSystemObject)

    https://www.tomasvasquez.com.br/blog/microsoft-office/vba-lendo-um-arquivo-texto-linha-a-linha-sem-filesystemobject/
    ==================================================
    [Resolvido] Como ler arquivos TXT no VBA ? - Visual Basic ...

    https://forum.imasters.com.br/topic/357818-resolvido%C2%A0como-ler-arquivos-txt-no-vba/
    ==================================================


    []'s,
    Fabio I.
    • Sugerido como Resposta IgorFKModerator quinta-feira, 9 de janeiro de 2020 16:28
    • Marcado como Resposta Jeniffer Oliveira terça-feira, 14 de janeiro de 2020 01:26
    • Editado Fabio I terça-feira, 14 de janeiro de 2020 09:29
    segunda-feira, 6 de janeiro de 2020 12:25
  • Muito obrigada! Deu super certo com as suas dicas!
    terça-feira, 14 de janeiro de 2020 01:26