File TXT e DataGridView

venerdì 29 giugno 2012 - 16.05
Tag Elenco Tags  VB.NET  |  .NET 3.5  |  Windows 7  |  Visual Studio 2008

clan Profilo | Junior Member

devo popolare una DataGridView da un file formato txt a lunghezza fissa.
Il mio problema è come dividere i vari campi del file in colonne del DataGridView?
Grazie

nico839 Profilo | Senior Member

ciao, che cosa intendi con "a lunghezza fissa"?
di solito mi è capitato di lavorare con due tipi di file:
1. ogni riga ha campi a lunghezza fissa( ad esempio dal carattere 0 al carattere 5 il dato1, dal carattere 6 al carattere 10 il dato2...) e con il substring si estrapolano i dati;
2. i campi sono separati da un separatore (| oppure ; oppure , oppure altro) e con lo split estrapoli i dati
Ciao.
Nicolas

http://perledinico.blogspot.com

clan Profilo | Junior Member

intendo esattamete
1. ogni riga ha campi a lunghezza fissa( ad esempio dal carattere 0 al carattere 5 il dato1, dal carattere 6 al carattere 10 il dato2...) e con il substring si estrapolano i dati;
la difficolta è nel fare il substring per il datagridview

nico839 Profilo | Senior Member

qual'è la difficoltà?
Ciao.
Nicolas

http://perledinico.blogspot.com

clan Profilo | Junior Member

che le righe vengono importate tutte nella stessa colonna mentre devo suddividere in più colonne tante quante sono le informazioni contenute nella riga

nico839 Profilo | Senior Member

dunque, teoricamente potresti farti un datatable oppure un oggetto con i tuoi dati, poi leggi una riga per volta del file.
Ad ogni riga, fai il substring da indice ad indice e lo assegni alla cella di una riga del datatable o alla property dell'oggetto per ogni campo che devi estrapolare.
Aggiungi la riga al datatable o l'oggetto ad una list(of T) , ripeti l'operazione per ogni riga del file e poi al datagrid dai in pasto il datatable o la list(of T)...oppure tu fai in un altro modo?
Ciao.
Nicolas

http://perledinico.blogspot.com

clan Profilo | Junior Member

di solito il datatable estratto dal database lo passo diretttamente alla proprieta datasource del datagridview
ma in questo caso come fare per organizzare i dati?
Come fare per leggere ed aggiornare il datatable leggendo una riga per volta fino alla fine del file?

nico839 Profilo | Senior Member

dunque, tu dovresti avere un datatable tipizzato, giusto?
quindi io farei così :

Dim DT as new tuoDatatable Dim dr as DataRow Dim objReader As New StreamReader("c:\test.txt") Dim sLine As String = "" Do sLine = objReader.ReadLine() If Not sLine Is Nothing Then dr = new tuoDatatable.NewRow dr("dato1") = sLine.Substring(0,5) dr("dato2) = sLine.Substring(6,10) .... .... DT.Rows.Add(dr) End If Loop Until sLine Is Nothing objReader.Close() DataGridView.DataSource = DT DataGridView.Refresh
Ciao.
Nicolas

http://perledinico.blogspot.com

clan Profilo | Junior Member

Ok funge
Grazie
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-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5