Compartilhar via

Leitura das ultimas "X" linhas de arquivo TXT (usando variáveis internas LOF & LOC)

Anônima
2022-02-07T14:10:26+00:00

Ola!
Tenho arquivos TXTs enormes e gostaria de ler as últimas "X" linhas (a definir, mas aproximadamente 100), pois contém as informações que busco.

Já usei o método "padrão" (conforme abaixo) e verifiquei o conteúdo que busco... funciona!

Do While Not EOF(1)

Line Input #1, Linha 

If Mid(Linha, 2, 4) = "9900" Then 

.... 

ElseIf Mid(Linha, 2, 4) = "9999" Then 

.... 

    Exit Do 

End If 

Loop

Entretanto como alguns arquivos são muito grandes as leituras são beeeeem lentas.

Gostaria de ler os últimos bytes do arquivo alterando a posição de leitura do arquivo aberto #1

Sei que a variável LOF(1) me traz o tamanho do arquivo... mas não consigo alterar a posição de leitura LOC(1) para LOF(1) - 1000 (por exemplo), como proceder ?

LOC(1) = LOF(1) - 1000 <=== Não funciona! =(

Microsoft 365 e Office | Excel | Para empresas | Windows

Pergunta bloqueada. Essa pergunta foi migrada da Comunidade de Suporte da Microsoft. É possível votar se é útil, mas não é possível adicionar comentários ou respostas ou seguir a pergunta.

0 comentários Sem comentários

1 resposta

Classificar por: Mais útil
  1. Anônima
    2022-02-08T12:17:44+00:00

    Para registro, caso alguém precise... consegui resolver da seguinte forma:

        PriLin = True 
    
        Open Worksheets("MENU").Cells(3, 1).Value & Worksheets("MENU").Cells(IX, 1).Value For Input As #1 
    
        Do While Not EOF(1) 
    
            If LOF(1) &gt; 10000 And PriLin Then 
    
                Seek #1, LOF(1) - 10000 
    
                PriLin = False 
    
            End If 
    
            Line Input #1, Linha 
    
            If Mid(Linha, 2, 4) = "9900" Then 
    
    	... 
    
            ElseIf Mid(Linha, 2, 4) = "9999" Then 
    
    	... 
    
                Exit Do 
    
            End If 
    
        Loop 
    

    Resumindo... na primeira leitura de cada arquivo, o comando SEEK "joga" a leitura lá para o final, alterando a posição de leitura (variável LOC) para o tamanho do arquivo menos 10.000 caracteres (fiz um teste e ficou ok!).

    =D

    Esta resposta foi útil?

    0 comentários Sem comentários