PDA

View Full Version : [VB.NET]lettura file di testo


radeon_snorky
27-01-2010, 09:14
salve gente!
ho un problemino piccolo piccolo ma per me insormontabile!
codice in premessa:
ListView1.View = View.Details
ListView1.CheckBoxes = True
ListView1.Columns.Add("DATA", 50, HorizontalAlignment.Left)
ListView1.Columns.Add("PRATICA", 100, HorizontalAlignment.Left)
ListView1.Columns.Add("PV", 100, HorizontalAlignment.Left)
ListView1.Columns.Add("NOTA", 100, HorizontalAlignment.Left)
ListView1.Columns.Add("TECNICO", 100, HorizontalAlignment.Left)
ListView1.Columns.Add("PREAVVISO", 40, HorizontalAlignment.Left)
Dim line As String
Dim i As Integer
Dim readFile As System.IO.TextReader = New StreamReader("\\Server\scadenze.csv")
While True
line = readFile.ReadLine
If line Is Nothing Then
Exit While
Else
Dim campo() As String = Nothing
campo = line.Split(",")
For i = 0 To UBound(campo)
Dim l As ListViewItem = ListView1.Items.Add(campo(i))
Dim col2 As String = i + 1
l.SubItems.Add(campo(col2))
Dim col3 As String = i + 2
l.SubItems.Add(campo(col3))
l.SubItems.Add(campo(i))
l.SubItems.Add(campo(i))
Next
End If

End While


il codice dovrebbe servire a popolare una listview in modo da separare i campi di un csv incolonnandoli per bene.
mi rendo conto che le ultime righe di codice (subitems) non funzionino... ma trovandomi in difficoltà ho deciso di scrivere sul forum e vedere se l'approccio scelto è sbagliato o meno e così decidere se buttare tutto il codice o meno...

passiamo alle considerazioni/domande:
nel codice apro il file e leggo una riga per ciclo, secondo me, per procedere ordinatamente, dovrei conoscerne il numero di riga per poi incasellarlo correttamente, giusto? il fatto è che non trovo una funzione che mi indichi il numero di riga! devo forse usare un ciclo for/next e prenderne l'indice?

quando incasello i dati è meglio inserirli tutti insieme o riga per riga, inserendoli nello stesso ciclo di lettura?

cercate di togliere la nebbia che mi sta inabissando!!!

grazie 1000

radeon_snorky
27-01-2010, 10:04
che semo che sono!
ListView1.View = View.Details
ListView1.CheckBoxes = True
ListView1.Columns.Add("DATA", 50, HorizontalAlignment.Left)
ListView1.Columns.Add("PRATICA", 100, HorizontalAlignment.Left)
ListView1.Columns.Add("PV", 100, HorizontalAlignment.Left)
ListView1.Columns.Add("NOTA", 100, HorizontalAlignment.Left)
ListView1.Columns.Add("TECNICO", 100, HorizontalAlignment.Left)
ListView1.Columns.Add("PREAVVISO", 40, HorizontalAlignment.Left)
Dim line As String
Dim i As Integer
Dim path As String
path = "\\Server\scadenze.csv"
Dim readFile As System.IO.TextReader = New StreamReader(path)
While True
line = readFile.ReadLine
If line Is Nothing Then
Exit While
Else
Dim campo() As String = Nothing
campo = line.Split(",")
Dim l As ListViewItem = ListView1.Items.Add(campo(0))
l.SubItems.Add(campo(1))
l.SubItems.Add(campo(2))
l.SubItems.Add(campo(3))
l.SubItems.Add(campo(4))
End If

End While
End Sub

se potete darmi delle dritte su come migliorare o procedere... in pratica devo poter filtrare/editare/cancellare i dati di quel file e POI realizzare degli avvisi in determinate circostanze (è uno scadenzario...)

radeon_snorky
28-01-2010, 12:19
meglio usare il datagridview?
a casa influenzato mi son messo a pistolare:
Public Sub cataloga()
Try
Dim line As String
Dim sTemp As String
Dim campo() As String
Dim fName As String = "c:\pippo1.csv"
Dim sGridRow(6) As String
Dim lineNumber As Integer = 0
Dim reader As New IO.StreamReader(fName)
DataGridView1.Rows.Clear()
While reader.Peek <> -1
line = reader.ReadLine()
campo = Split(line, ";")
For i As Integer = 0 To campo.Length - 3
sTemp = Replace(campo(i), """", "")
sGridRow(i) = sTemp
Next
Me.DataGridView1.Rows.Add(sGridRow)
lineNumber += 1
End While
Catch ex As Exception
Dim risp As Integer
risp = MsgBox(ex, 17)
If risp = 2 Then
Exit Sub
End If
End Try
End Sub
come al solito è codice copia/incollato e adattato... dite che è preferibile alla listview?

MarcoGG
28-01-2010, 12:44
Il DataGridView è molto più adatto alla rappresentazione di tabelle dati, quindi il mio consiglio è : stai sul DataGridView... ;)

radeon_snorky
28-01-2010, 14:44
Il DataGridView è molto più adatto alla rappresentazione di tabelle dati, quindi il mio consiglio è : stai sul DataGridView... ;)sempre tu a rispondermi... dovrò erigere una statua in tuo onore!!!
posso chiederti una cosa velocissima?
questi sono i libli che ho in casa:
http://www.ibs.it/code/9788804534600/balena-francesco/visual-basic-net.html
http://www.libreriauniversitaria.it/visual-basic-net-padovani-marisa/libro/9788850320165
http://www.webster.it/libri-microsoft_visual_basic_2008_express-9788861141148.htm
quest'ultimo in versione economica "pc professionale"

forse ne abbiamo già parlato (...scritto) ma che libri dovrei leggere per capire per bene vb?!?!?!?! quello di balena è un filino troppo tecnico... nel senso che spiega perfettamente ogni cosa ma non riesco a contestualizzarne il contenuto.
c'è qualche libro che faccia al caso mio?

MarcoGG
29-01-2010, 12:33
sempre tu a rispondermi... dovrò erigere una statua in tuo onore!!!
posso chiederti una cosa velocissima?
questi sono i libli che ho in casa:
http://www.ibs.it/code/9788804534600/balena-francesco/visual-basic-net.html
http://www.libreriauniversitaria.it/visual-basic-net-padovani-marisa/libro/9788850320165
http://www.webster.it/libri-microsoft_visual_basic_2008_express-9788861141148.htm
quest'ultimo in versione economica "pc professionale"

forse ne abbiamo già parlato (...scritto) ma che libri dovrei leggere per capire per bene vb?!?!?!?! quello di balena è un filino troppo tecnico... nel senso che spiega perfettamente ogni cosa ma non riesco a contestualizzarne il contenuto.
c'è qualche libro che faccia al caso mio?

E fatelo questo monumento ! :D :p
Lo dite sempre e non lo fate mai. Mi va bene anche un monumento "virtuale"... :D

Scherzi a parte, sui 3 che hai citato :
- Il primo Balena lo conosco "di vista", non mi pare fosse "troppo tecnico".
Qui in giro ci sono diverse discussioni in cui consiglio i soliti 2 manuali di Balena su VB2005 ( validi anche per 2008 )...
- Gli altri 2 non li ho mai neanche sfogliati, soprattutto il primo non mi dice un granchè.

Se per "contestualizzare" intendi un manuale che ti guida passo passo alla realizzazione dell'applicativo-tipo che vorresti realizzare, a parte i soliti tutorial di start-up, temo sia una ricerca vana.
In genere quello che fa la differenza è la propria esperienza ( per fare il tavolo ci vuole il legno, per fare il legno ci vuole l'albero, per fare l'albero... ), e tanto, tanto, autoapprendimento.
Tieni presente che su una cosa sconfinata come VB 2008 un manuale "per esempi" davvero completo è una pia chimera.