Leggere singole righe di file txt e popolare textbox

domenica 18 ottobre 2009 - 22.36

Fristallo Profilo | Newbie

Salve a tutti,
Sto scrivendo il mio primo programma in vb.net e vorrei in particolare leggere da un file di testo le righe in esso contenute e riempire varie textbox, ciascuna contente i dati letti in una riga specifica del file txt. Come potrei fare ciò? Riporto il codice che ho scritto ed oltre il quale non so andare.....


Dim apri As New OpenFileDialog()
Dim nomefile As System.IO.StreamReader
apri.Filter = "File di testo(*.txt)|*.txt"
apri.CheckFileExists = True
apri.ShowDialog(Me)

Try
apri.OpenFile()
nomefile = System.IO.File.OpenText(apri.FileName)

AntCiar Profilo | Expert

Ciao. Questo è il codice da utilizzare per scorrere ogni singola riga di un file di testo
PS: oltre ad aggiungere la Sub scritta sotto, modifica il tuo codice in qiesto modo:

Dim apriFile As OpenFileDialog = New OpenFileDialog()
apriFile.AddExtension = True
apriFile.Filter = "Tutti i file di testo (*.txt)|*.txt"
If apriFile.ShowDialog() = Windows.Forms.DialogResult.OK Then
Me.LeggiFile(apriFile.FileName)
End If
apriFile.Dispose()
apriFile = Nothing

Private sub LeggiFile(byval pathFile as string)

Dim rdf As System.IO.StreamReader = New System.IO.StreamReader(pathFile, System.Text.Encoding.Default)
Dim tmp As String = rdf.ReadLine()

While Not tmp Is Nothing

.... qui puoi controllare ogni linea del file

tmp = rdf.ReadLine()
End While
rdf.Dispose()
rdf.Close()

End Sub

Fristallo Profilo | Newbie

Innanzitutto ti ringrazio per avermi risposto. Ho provato ad utilizzare il tuo codice, ma ancora non ho la padronanza necessaria per capirlo appieno. Saresti così gentile da darmi qualche altra spiegazione? Ad esempio, se voglio mettere il contenuto della terza riga del file di testo su un textbox, come devo fare? Sto in tilt...

Grazie comunque per ciò che hai fatto fino ad ora!

alexmed Profilo | Guru

Ciao
Aspettando che Cristian ti risponda prova questo:


Dim openFileDialog1 As New OpenFileDialog() openFileDialog1.InitialDirectory = "C:\" openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*" openFileDialog1.FilterIndex = 1 openFileDialog1.RestoreDirectory = True If openFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OK Then Dim path As String = openFileDialog1.FileName Dim readText() As String = File.ReadAllLines(path) MsgBox(readText.GetValue(5)) 'Leggo la sesta linea (0 è la prima) End If

Ciao

alexmed

AntCiar Profilo | Expert

Ciao.

Ti ho allegato un piccolo progetto di esempio in cui ho commentato il codice

Ciao ciao.

Cristian

Fristallo Profilo | Newbie

Ho studiato (e sto studiando ancora) l'esempio che, gentilmente, hai postato ed ho risolto ogni problema. Sei stato super chiaro e gentile, grazie!

AntCiar Profilo | Expert

Di niente.

Comunque anche la risposta di alexmed è fattibile.
L'unica differenza è che utilizzando il codice di alexmed quando andava a leggere il valore della riga con

readText.GetValue(5)

se per caso la riga 6 (sempre perchè gli indici sono a base 0 e non 1) non esiste ti da un errore del tipo 'Indice oltre i limiti della matrice'

Con il codice che ti ho inviato puoi anche inserire un valore di riga inesistente senza darti errore.

Ciao ciao
PS. se hai bisogno fai un fischio.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5