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

Snake-Bite

Retirar Linha de Ficheiro

Recommended Posts

Snake-Bite

Boa noite,

estou com uma dúvida.

Preciso de retirar de 1 ficheiro txt algumas linhas para mostrar numa msgbox, é possivel???

Exemplo:

------.

Cabeçalho

-------

Nome

-------

Idade

-------

Nº Telm

-------

Queria retirar só a linha com o nome e o nº telm.

Cmpts

Share this post


Link to post
Share on other sites
ribeiro55

Claro que é possível.

Qual é a dúvida? O que já tentaste?


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Share this post


Link to post
Share on other sites
Snake-Bite

Claro que é possível.

Qual é a dúvida? O que já tentaste?

Como ainda sou muito amador, tirei alguns exemplos da net.

Este abre-me o ficheiro todo numa msgbox:

Dim texto As String = My.Computer.FileSystem.ReadAllText("C:\Temp\ed00236.alc")

MsgBox(texto)

-----------------------------------------------------------

Tentei adaptar este:

Dim fileReader As System.IO.StreamReader

fileReader = My.Computer.FileSystem.OpenTextFileReader("C:\Temp\ed00236.alc")

Dim stringReader As String

stringReader = fileReader.ReadLine()

MsgBox("The first line of the file is " & stringReader)

Vai-me buscar a 1ª linha mas não sei o que alterar para expecificar a linha que quero.

Este era o ideal, escolhendo tipo Linha(2 & 4), não sei se dá para fazer...

-----------------------------------------------------------

Consigo lá chegar com o texto como fiz abaixo:

Dim linhas() As String = IO.File.ReadAllLines("C:\Temp\ed00236.alc")

For Each linha As String In linhas

If linha.Contains("Nome:") Then

MsgBox(linha)

End If

Next

Já ando um bocado baralhado com isto...

Edited by Snake-Bite

Share this post


Link to post
Share on other sites
ribeiro55

Se o que interessa apanhar é uma linha inteira, faz um ReadAllText para uma String e um Split(vbCrLf) em cima.

Ficas com um array com uma linha do ficheiro em cada slot. Escolhes depois a linha por índice


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Share this post


Link to post
Share on other sites
He B TeMy

Visto que queres as linhas 2 e 4, em vez de fazeres isto:

Dim linhas() As String = IO.File.ReadAllLines("C:\Temp\ed00236.alc")
For Each linha As String In linhas
If linha.Contains("Nome:") Then
MsgBox(linha)
End If
Next

Fazes isto:

Dim linhas() As String = IO.File.ReadAllLines("C:\Temp\ed00236.alc")
MessageBox.Show(linhas(2) & " SEPARADOR " & linhas(4))
End If
Next

Este código mostrará uma messagebox com um "separador" no meio das duas linhas, adapta como quiseres.

Share this post


Link to post
Share on other sites
ribeiro55

Neste caso, se queres as linhas 2 e 4, os índices são 1 e 3 :)


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Share this post


Link to post
Share on other sites
He B TeMy

Neste caso, se queres as linhas 2 e 4, os índices são 1 e 3 :)

Ups, já não toco em código á 3 meses... :/

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.