Ajudar com deletar linhas de um Txt

Post a reply


In an effort to prevent automatic submissions, we require that you complete the following challenge.
Smilies
:D :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :| :mrgreen: :geek: :ugeek: :arrow: :angel: :clap: :crazy: :eh: :lolno: :problem: :shh: :shifty: :sick: :silent: :think: :thumbup: :thumbdown: :salute: :wave: :wtf: :yawn: :facepalm: :bravo: :dance: :beard: :morebeard: :xmas: :HeHe: :trollface: :cookie: :rainbow: :monkeysee: :monkeysay: :happybday: :headwall: :offtopic: :superhappy: :terms: :beer:
View more smilies

BBCode is ON
[img] is OFF
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Ajudar com deletar linhas de um Txt

Re: Ajudar com deletar linhas de um Txt

Post by sofista » 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.

Re: Ajudar com deletar linhas de um Txt

Post by thalesduarte » 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!

Ajudar com deletar linhas de um Txt

Post by claudiosxj » 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 ?

Top