Ajudar com deletar linhas de um Txt

Tire suas dúvidas sobre programação em AutoHotkey

Moderator: Gio

claudiosxj
Posts: 11
Joined: 08 Dec 2020, 12:41

Ajudar com deletar linhas de um Txt

04 Dec 2023, 10:33

Bom dia!

Gostaria de uma ajuda em uma situação, eu tenho vários arquivos txt com mais de 5mil linhas eu gostaria de retirar as 5 primeiras linhas e a ultima linha destes arquivos, eu consegui fazer reescrevendo o arquivo com loop read, porém é muito demorado pela quantidade de linhas e arquivos que tenho para fazer isso.

Alguma ideia para me ajudar ?
thalesduarte
Posts: 95
Joined: 13 Sep 2021, 06:08

Re: Ajudar com deletar linhas de um Txt

04 Dec 2023, 11:42

Testei o código, o mesmo foi gerado usando ChatGPT

Code: Select all

; Itera sobre todos os arquivos txt no diretório especificado
Loop, Files, C:\Caminho\Para\Seus\Arquivos\*.txt
{
    ; Obtém o caminho completo do arquivo atual
    arquivo := A_LoopFileLongPath
    
    ; Lê todo o conteúdo do arquivo para a variável 'conteudo'
    FileRead, conteudo, %arquivo%
    
    ; Divide o conteúdo em linhas
    linhas := StrSplit(conteudo, "`n")
    
    ; Remove as 5 primeiras linhas e a última linha
    Loop, % linhas.MaxIndex()
    {
        if (A_Index > 5 and A_Index < linhas.MaxIndex())
            novoConteudo .= linhas[A_Index] "`n"
    }
    
    ; Salva o novo conteúdo de volta no arquivo
    FileDelete, %arquivo%
    FileAppend, %novoConteudo%, %arquivo%
    
    ; Limpa as variáveis para o próximo arquivo
    novoConteudo := ""
}
MsgBox, Concluído!
sofista
Posts: 650
Joined: 24 Feb 2020, 13:59
Location: Buenos Aires

Re: Ajudar com deletar linhas de um Txt

04 Dec 2023, 17:11

Olá: Como alternativa, eu excluiria as primeiras 5 linhas e a última linha com RegEx. Você lê o arquivo com FileRead, data, PathToYourFile e continua assim, por exemplo:

Code: Select all

data := "
(
01 Lorem ipsum dolor sit amet, consectetur adipiscing elit,
02 sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
03 Ut enim ad minim veniam, quis nostrud exercitation 
04 ullamco laboris nisi ut aliquip ex ea commodo consequat.
05 Duis aute irure dolor in reprehenderit in voluptate velit 
06 esse cillum dolore eu fugiat nulla pariatur.
07 Excepteur sint occaecat cupidatat non proident, 
08 sunt in culpa qui officia deserunt mollit anim id est laborum.
09 Lorem ipsum dolor sit amet, consectetur adipiscing elit,
10 sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
11 Ut enim ad minim veniam, quis nostrud exercitation 
12 ullamco laboris nisi ut aliquip ex ea commodo consequat.
13 Duis aute irure dolor in reprehenderit in voluptate velit 
14 esse cillum dolore eu fugiat nulla pariatur.
15 Excepteur sint occaecat cupidatat non proident, 
16 sunt in culpa qui officia deserunt mollit anim id est laborum.
)"

data := RegExReplace(data, "\A(.*?\R){5}(.*\R).*\R?", "$2")
MsgBox, % data

/* Output:

06 esse cillum dolore eu fugiat nulla pariatur.
07 Excepteur sint occaecat cupidatat non proident,
08 sunt in culpa qui officia deserunt mollit anim id est laborum.
09 Lorem ipsum dolor sit amet, consectetur adipiscing elit,
10 sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
11 Ut enim ad minim veniam, quis nostrud exercitation
12 ullamco laboris nisi ut aliquip ex ea commodo consequat.
13 Duis aute irure dolor in reprehenderit in voluptate velit
14 esse cillum dolore eu fugiat nulla pariatur.
15 Excepteur sint occaecat cupidatat non proident,

 */
Em seguida, o é salvo no (novo) arquivo.

Return to “Ajuda e Suporte Geral”

Who is online

Users browsing this forum: No registered users and 98 guests