Notifications
Clear all

Ler diretorio com varios arquivos txt

3 Posts
2 Usuários
0 Reactions
1,192 Visualizações
(@araujors)
Posts: 79
Estimable Member
Topic starter
 

Bom dia pessoal, o código abaixo consigo ler todos os arquivos de um diretório txt, mas quando eu peço para que ele faça a copia para uma novo de todos ele esta copiando um por cima do outro após o ajuste, poderiam me ajudar.

Por exemplo: diretório C:teste tenho dois arquivos chamado BD1, BD2

O código abaixo esta entrando em cada um fazendo os ajustes, isso já esta funcionando, mas ao efetuar a cópia ele copia da erro ele substitui um por cima do outro.

Sub SubstituirTeste()
        Dim Arquivo As String
        Dim Arquivo2 As String
        Dim Linha As String
        Dim Pasta As String
        Dim tempo As String
        Dim ANome As String
        
        tempo = Format(Time, "hhmmss")
        
        'Atribui a pasta onde estão os arquivos
        Pasta = "C:teste"
        
        'Coloca na variável o nome do primeiro arquivo
        Arquivo = Dir(Pasta & "*.txt")
        
        Do While Arquivo <> ""
        
        'Inicia um laço para cópia dos arquivos
        ANome = Pasta & Arquivo
       
        'Le o arquivo sem abrilo
        Arquivo = FreeFile
        
'        Arquivo = CInt(Arquivo) + 1
       
        'Define o local do arquivo editado. Pode ser alterado, caso queira que seja salvo em outro local.
        Arquivo2 = "C:" & "GKO" & tempo & (".txt")
       
        'Abre o arquivo que receberá os dados editados
        Open Arquivo2 For Output As #2
       
        'Abre o arquivo original
        Open ANome For Input As #1
       
        While Not EOF(1)
            Line Input #1, Linha
           
            'Substitui o caracter § por #
'            Linha = Replace(Linha, "§", "#")
            Linha = Replace(Linha, "IGUACU", "IGUAÇU")
            Linha = Replace(Linha, "GONCALO", "GONÇALO")
            Print #2, Linha
        Wend
        Close
        
        'Coloca na variável o nome do próximo arquivo
Arquivo = Dir
Loop

        MsgBox "Fim de Execução da Macro"
    End Sub
 
Postado : 30/09/2017 5:20 am
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 

Araujo, boa noite

Não cheguei a analisar seu código, portanto é só um palpite (vai desculpando aí... ;) ):
Na linha em que vc abre o arquivo para escrever os dados, na instrução Open, ao invés de usar o modo Output, tente usar Append :

...
'Abre o arquivo que receberá os dados editados
Open Arquivo2 For Append As #2
...

 
Postado : 30/09/2017 5:29 pm
(@araujors)
Posts: 79
Estimable Member
Topic starter
 

Edson, Boa noite
Trocando o Output como você mencionou colocou todos os arquivos lidos em um só o que eu preciso é q cada arquivo lido dentro de um diretório seja corrigido e enviado a outro, exemplo se li dois tem que gerar dois arquivos.

 
Postado : 30/09/2017 6:55 pm