• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

zeroonnet

[VB.net] ler file por linhas e conseguir apagar essa linha

10 mensagens neste tópico

tipo tive a ver na edição 4 da revista e mesmo aqui no forum e não encontrei nada que fala-se bem disso. queria ler linha a linha de um file e que desse para apagar essa linha. e depois que tambem desse para apagar só algumas cenas dessa linha ou tirar cenas entre palavras do tipo bla ola ola bla e ai tirava os ola ola só.

Fiquem bem.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

isso que tu queres fazer acho que não é muito complicado, lês um ficheiro todo para uma variável/array e depois retiras o que queres alterando a variável/array e voltas a gravar tudo no ficheiro.

acho que esta pode ser uma solução para o que pretendes :hmm:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

mas ai ele grava tudo numa so variavel do tipo eu queria separado por linhas e não ter o texto todo junto :S

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

se usares um array ele talvez ficasse com um tamanho um bocado grande, dependendo do numero de linhas do ficheiro... :hmm:

talvez se leres o ficheiro ate a linha que queres apagar/modificar, recorrendo a ficheiros temporários e depois gravavas o ficheiro final com tudo direitinho...

ou então recorrendo a uma listbox invisível... :hmm:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

les o texto para uma array e depois metes numa list para facilitar trabalhar com o mesmo. Editas o que queres e voltas a gravar.

        Dim text As Array 'a array de texto
        Dim lines As New List(Of String) 'representa cada linha de texto
        text = File.ReadAllLines(PATH PARA O TEU FICHEIRO) 'le o ficheiro
        lines.AddRange(text) 'organiza o texto por linhas com a variavel 'lines'

       'Depois editas o que queres...por exemplo...imagina que queres alterar a linha 3
        If lines.Item(2).Contains("Ola") then
        lines.Item(2).Replace("Ola", "Adeus")
        End if 'nao te esqueças que a linha 3 é o item(2) porque a list
        'começa em 0, logo, 0,1,2...que sao 3. percebeste? lol

       'para gravares de novo
        text = lines.ToArray 'voltas a por as linhas na array de texto
        File.WriteAllLines(PATH PARA O TEU FICHEIRO, text) 'gravas

Espero ter ajudado

Nota: Para usares 'File.*...' tens de fazer Imports System.IO no inicio...ou entao em vez de File usa IO.File.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tipo para saber quantas linhas tem o lines faço como? seria para criar um while que enquanto nao visse as linhas todas ele nao parava.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

o vb não tem nenhuma função para isso? :hmm:

em todo o caso será um ciclo similar ao que referiste, só para de incrementar o contador se EOF=true

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

epa eu não percebo assim muito de VB.net Soulsick por isso não percebi bem o que querias dizer :S se podesses deixar ai o code como tás a dizer agradecia :P

Edit:

eu na volta tou a ir pelo caminho mais dificil o que eu quero fazer com isto é procurar informação num .html talvez consiga talvez nao mas se souberem outra forma digam tambem  sff xD

Second edit:

Soulsick será isto que querias dizer:

Do While Not EOF(1)

        Loop

?

Fiquem Bem!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

EOF = end of file / fim do ficheiro

o que eu disse era para tu criares um contador (variavel que é incrementada) que va sendo incrementando ate que chegue ao fim do ficheiro.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

coloquei como disse em cima dá erro diz que esta frase ta mal:

Do While Not EOF(1)

e tenho o code assim:

Do While Not EOF(1)

            If lines.Item(x).Contains("tabela_programacao_tr1") Then

            Else

                lines.Item(x).Replace(lines.Item(x), "nada")

            End If

            x = x + 1

        Loop

acho que era isso que querias dizer :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora