Ler Ficheiro TXT em VB.net

AMRF

Membro
Boa tarde!

Tenho um pequeno programa que cria um ficheiro txt com os resultados que o código calcula. Esse ficheiro txt tem duas colunas. Por exemplo (0 14.41). Posteriormente, preciso que o código de um novo form leia esse ficheiro mas apenas quero que leia os valores que estão na segunda coluna, ou seja, 14.41. Alguém me pode dar uma dica de como fazer? Até ao momento sempre que corro o código dá me erros, sendo que, eu penso que os erros tem a ver com o facto de eu estar a ler a linha toda e não apenas o valor que quero efetivamente.
Deixo abaixo os códigos que tenho escritos neste momento:

Código para escrever o ficheiro txt:

Dim caminho As String = "f:\FL.txt"
Dim mywriter As IO.StreamWriter
Dim arquivo As FileStream = File.Create(caminho)
mywriter = New IO.StreamWriter(arquivo)
Dim minutos As Double
minutos = 0
For Each valor In array_valores_calculados
mywriter.WriteLine(minutos & vbTab & valor)
minutos += 1
Next
mywriter.Close()

Código para ler o ficheiro:
If Check_Box.Checked = True Then
myreader_1 = New IO.StreamReader(arquivo_analise_1)
For ia = 0 To 1000 Step 1
For Each valor_1 As String In arquivo_analise_1
valor_1 = myreader_1.ReadLine()
myarray_1(ia) = valor_1
ia += 1

Next
Next
myreader_1.Close()
Else
For ia = 0 To 1000 Step 1
myarray_1(ia) = 0
Next
End If
 
Boa tarde!

Tenho um pequeno programa que cria um ficheiro txt com os resultados que o código calcula. Esse ficheiro txt tem duas colunas. Por exemplo (0 14.41). Posteriormente, preciso que o código de um novo form leia esse ficheiro mas apenas quero que leia os valores que estão na segunda coluna, ou seja, 14.41. Alguém me pode dar uma dica de como fazer? Até ao momento sempre que corro o código dá me erros, sendo que, eu penso que os erros tem a ver com o facto de eu estar a ler a linha toda e não apenas o valor que quero efetivamente.
Deixo abaixo os códigos que tenho escritos neste momento:

Código para escrever o ficheiro txt:

Dim caminho As String = "f:\FL.txt"
Dim mywriter As IO.StreamWriter
Dim arquivo As FileStream = File.Create(caminho)
mywriter = New IO.StreamWriter(arquivo)
Dim minutos As Double
minutos = 0
For Each valor In array_valores_calculados
mywriter.WriteLine(minutos & vbTab & valor)
minutos += 1
Next
mywriter.Close()

Código para ler o ficheiro:
If Check_Box.Checked = True Then
myreader_1 = New IO.StreamReader(arquivo_analise_1)
For ia = 0 To 1000 Step 1
For Each valor_1 As String In arquivo_analise_1
valor_1 = myreader_1.ReadLine()
myarray_1(ia) = valor_1
ia += 1

Next
Next
myreader_1.Close()
Else
For ia = 0 To 1000 Step 1
myarray_1(ia) = 0
Next
End If

Eu estou mais habituado a C#, mas penso que se, após a inicialização do streamreader fizeres:
While((registo=myreader.read())!=null)
{
string[] rec=registo.split("\t"); no teu caso vbtab
Ir(rec.length>1)
{
Listaqualquer.Add(rec[1]);
}
}
Eu não tenho forma de testar se funciona.
Está em C# mas a conversão não s muito complicada.
 
Boa tarde!

Tenho um pequeno programa que cria um ficheiro txt com os resultados que o código calcula. Esse ficheiro txt tem duas colunas. Por exemplo (0 14.41). Posteriormente, preciso que o código de um novo form leia esse ficheiro mas apenas quero que leia os valores que estão na segunda coluna, ou seja, 14.41. Alguém me pode dar uma dica de como fazer? Até ao momento sempre que corro o código dá me erros, sendo que, eu penso que os erros tem a ver com o facto de eu estar a ler a linha toda e não apenas o valor que quero efetivamente.
Deixo abaixo os códigos que tenho escritos neste momento:

Código para escrever o ficheiro txt:

Dim caminho As String = "f:\FL.txt"
Dim mywriter As IO.StreamWriter
Dim arquivo As FileStream = File.Create(caminho)
mywriter = New IO.StreamWriter(arquivo)
Dim minutos As Double
minutos = 0
For Each valor In array_valores_calculados
mywriter.WriteLine(minutos & vbTab & valor)
minutos += 1
Next
mywriter.Close()

Código para ler o ficheiro:
If Check_Box.Checked = True Then
myreader_1 = New IO.StreamReader(arquivo_analise_1)
For ia = 0 To 1000 Step 1
For Each valor_1 As String In arquivo_analise_1
valor_1 = myreader_1.ReadLine()
myarray_1(ia) = valor_1
ia += 1

Next
Next
myreader_1.Close()
Else
For ia = 0 To 1000 Step 1
myarray_1(ia) = 0
Next
End If

Nota que podes transformar cada paragrafo numa string, em que os separa é o espaço " ".
Divides a string em dois pelo espaço " ".
string[0] pertence à coluna 1
string[1] pertence à coluna 2

Habitualmente é isto que eu faço.
Uso sempre, no ficheiro *.txt, um elemento separador, por exemplo "-".
Crio uma listbox para copiar os dados do ficheiro *.txt para o programa.
Ao ler a ListBox, cada linha (string) será divida pelo elemento separador.
Dim new_string As String() = ListBox1.Items(j).ToString.Split(New [Char]() {"-"c})

(New [Char]() {" "c}) para separador espaço " ".
 
Última edição:
Back
Topo