Risolto Carica DataGrid

Orset

Utente abituale
14 Dicembre 2017
103
16
torino
2010
0
Buongiorno,

Io salvo una datagridview in questo modo:

Codice:
  Private Sub Salva_Click(sender As Object, e As EventArgs) Handles Salva.Click
        Dim writer As TextWriter = New StreamWriter("C:\Desktop\Text.txt")
        For i As Integer = 0 To DataGridView1.Rows.Count - 2 Step +1
            For j As Integer = 0 To DataGridView1.Columns.Count - 1 Step +1
                writer.Write(vbTab & DataGridView1.Rows(i).Cells(j).Value.ToString() & vbTab & "|")
            Next
            writer.WriteLine("")
            writer.WriteLine("-----------------------------------------------------------------")
        Next
        writer.Close()
        MessageBox.Show("Salvato con Successo!!")
    End Sub

e nel mio foglio di testo avrò:

1 | ciao | 1111 | 0100 |
-----------------------------------------------------------------
2 | a | 2222 | 2222 |
-----------------------------------------------------------------
3 | tutti | 0100 | 0100 |
-----------------------------------------------------------------
4 | come | 0100 | 0100 |
-----------------------------------------------------------------
5 | va? | 0100 | 0100 |
-----------------------------------------------------------------

come faccio a caricare questo txt nella mia datagridview?

grazie a tutti
 

patel

Utente assiduo
25 Marzo 2016
1.348
38
74
Livorno
2010
1
non c'è una riga di intestazione nella datagrid ? come la popoli ? i tab sono necessari ?
 

patel

Utente assiduo
25 Marzo 2016
1.348
38
74
Livorno
2010
1
prova questa
Codice:
      Dim TextFileReader As New Microsoft.VisualBasic.FileIO.TextFieldParser("C:\Desktop\Text.txt")

        TextFileReader.TextFieldType = FileIO.FieldType.Delimited
        TextFileReader.SetDelimiters(vbTab + "|" + vbTab)
        Dim TextFileTable As DataTable = Nothing
        Dim Column As DataColumn
        Dim Row As DataRow
        Dim UpperBound As Int32
        Dim ColumnCount As Int32
        Dim CurrentRow As String()

        While Not TextFileReader.EndOfData
            CurrentRow = TextFileReader.ReadFields()
            CurrentRow(CurrentRow.Length - 1) = CurrentRow(CurrentRow.Length - 1).Replace(vbTab + "|", "")
            If Not CurrentRow Is Nothing Then
                    If TextFileTable Is Nothing Then
                        TextFileTable = New DataTable("TextFileTable")
                        UpperBound = CurrentRow.GetUpperBound(0)
                        For ColumnCount = 0 To UpperBound
                            Column = New DataColumn()
                            Column.DataType = System.Type.GetType("System.String")
                            Column.ColumnName = "Col" & ColumnCount
                            Column.Caption = "Col" & ColumnCount
                        TextFileTable.Columns.Add(Column)
                    Next
                    End If
                    Row = TextFileTable.NewRow
                    For ColumnCount = 0 To UpperBound
                        Row("Col" & ColumnCount) = CurrentRow(ColumnCount).ToString
                    Next
                    TextFileTable.Rows.Add(Row)
                End If
        End While
        TextFileReader.Dispose()
        DataGridView1.DataSource = TextFileTable
 

patel

Utente assiduo
25 Marzo 2016
1.348
38
74
Livorno
2010
1
un po' più semplice
Codice:
        Dim Filename As String = "F:\Download\Text1.txt"
        Dim lines = (From line In IO.File.ReadAllLines(Filename) Select line.Split(New String() {vbTab + "|" + vbTab}, StringSplitOptions.None)).ToArray
        lines(0)(lines(0).Length - 1) = lines(0)(lines(0).Length - 1).Replace(vbTab + "|", "")
        For x As Integer = 0 To lines(0).Length - 1
            DataGridView1.Columns.Add("Col" + x.ToString, "Col" + x.ToString)
        Next
        For x As Integer = 0 To lines.Length - 1
            lines(x)(lines(x).Length - 1) = lines(x)(lines(x).Length - 1).Replace(vbTab + "|", "")
            DataGridView1.Rows.Add(lines(x))
        Next
 

Orset

Utente abituale
14 Dicembre 2017
103
16
torino
2010
0
Pantel, non Mi funziona, mi crea colonne che nn deve creare, molto probabilmente e il modo in cui l'ho salvo, è uguale a prima, con la differenza e che ho tolto le
righe ----------
 

Orset

Utente abituale
14 Dicembre 2017
103
16
torino
2010
0
Scusami patel, hai ragione
Codice:
 Private Sub Salva_Prezzi_Click(sender As Object, e As EventArgs) Handles Salva_Prezzi.Click
        Dim writer As TextWriter = New StreamWriter("C:\Users\BRUNO\Desktop\Text.txt")
        For i As Integer = 0 To DataGridView1.Rows.Count - 2 Step +1
            For j As Integer = 0 To DataGridView1.Columns.Count - 1 Step +1
                writer.Write(vbTab & DataGridView1.Rows(i).Cells(j).Value.ToString() & vbTab & "|")
            Next
            writer.WriteLine("")
            ' writer.WriteLine("-----------------------------------------------------------------")
        Next
        writer.Close()
        MessageBox.Show("Salvato con Successo!!")
    End Sub

txt.
1 | | 0100 | 0100 |
2 | | 0100 | 0100 |
3 | | 0100 | 0100 |
4 | | 0100 | 0100 |
5 | | 0100 | 0100 |
6 | | 0100 | 0100 |
7 | | 0100 | 0100 |
8 | | 0100 | 0100 |
9 | | 0100 | 0100 |
10 | | 0100 | 0100 |
 

patel

Utente assiduo
25 Marzo 2016
1.348
38
74
Livorno
2010
1
allegare non significa copiare ed incollare, mi occorre un file.
perché 2 | dopo il primo dato ? non era così nel primo post
 

Orset

Utente abituale
14 Dicembre 2017
103
16
torino
2010
0
Scusatemi se mi faccio risentire ora, ma sono stato un sacco impegnato, patel hai ragione, andando avanti però mi sono acccorto che mi serve qualcosa di più complicato di un semplice salva e carica, siccome io nel mio file txt, dovrei aver salvato più tabelle da caricare e salvare con ognuna la sua intestazione, tramite una combo box, allego la parte di software, fin dove sono riuscito ad arrivare
 

patel

Utente assiduo
25 Marzo 2016
1.348
38
74
Livorno
2010
1
Scusatemi se mi faccio risentire ora, ma sono stato un sacco impegnato, patel hai ragione, andando avanti però mi sono acccorto che mi serve qualcosa di più complicato di un semplice salva e carica, siccome io nel mio file txt, dovrei aver salvato più tabelle da caricare e salvare con ognuna la sua intestazione, tramite una combo box, allego la parte di software, fin dove sono riuscito ad arrivare
Non mi sembra di vedere modifiche concrete rispetto al tuo pripo post, aspetto che tu abbia le idee un po' più chiare
 

patel

Utente assiduo
25 Marzo 2016
1.348
38
74
Livorno
2010
1
Comunque il codice che ti ho fornito al post #7 funziona perfettamente se elimini le righe
 

Orset

Utente abituale
14 Dicembre 2017
103
16
torino
2010
0
Si si, grazie patel funziona, ora cerco di apportare qualche modifica, e cercare di creare un elenco di tabelle con ogni tabella un intestazione, all'interno del txt, cosi da scegliere sul software tramite una combobox la tabella che mi serve. Appena ho la soluzione la posto
 

Sostieni ForumExcel

Aiutaci a sostenere le spese e a mantenere online la community attraverso una libera donazione!