In DataGridView mehrere Textdateien laden

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von hal2000.

    In DataGridView mehrere Textdateien laden

    Schönen Tag an alle,

    ich hab ein Problem und komm nicht wirklich weiter.
    Ich möchte mehrere Text Dateien in einen DataGridView laden, d.h. Spalte1 -> Liste1, Spalte2->Liste 2 usw.
    Wobei jede Zeile ein Wort bzw. eine Zahl ist.

    Am Anfang wollte ich es in eine ListView laden kam aber drauf dass es in einem DataGridView besser aussieht
    (und irgendwie wollte es bei mir nicht funktionieren[alles erschien doppelt] :( )


    Habe leider den Code von meinem DataGridView ausversehen nicht gespeichert (funktionierte sowieso nicht) deswegen kann ich meinen Code nicht posten.

    Vielleicht könntet Ihr mir ja weiterhelfen
    (Suchmaschienen habe ich verwendet, aber leider nichts passendes gefunden)

    Vielen Dank im Voraus :)
    Hi.

    Lies zuerst alle Dateien in Arrays ein, sodass du für jede Datei ein Array mit je einer Zeile pro Element hast. Dann gehst du in einer For-Schleife das Array mit der kleinsten Anzahl an Elementen durch und erzeugst darin eine neue Zeile pro Durchlauf:

    VB.NET-Quellcode

    1. array1 = ReadAllLines(Datei)
    2. array2 = ...
    3. arrayN = ...
    4. For i = 0 To array1.Length - 1
    5. MyDataGridView.Rows.Add(New String() {array1(i), array2(i), array3(i), ..., arrayN(i)})
    6. Next
    Gruß
    hal2000
    :thumbsup: Vielen Dank, funtioniert wunderbar.
    (Warum bin ich nicht darauf gekommen... 8| )

    Ich hätte da noch eine (kurze) Frage:

    Wenn ich die Einträge bearbeite möchte ich diese dann speichern.
    Hab mal wieder herumprobiert, aber ich kenn mich (noch) mit einem DataGridView eher weniger aus.

    Ich bin mir nicht sicher, aber ich denk mal die Schreibmethode ist etwas anders als bei einem Textbox/ListBox, oder?
    (Hab natürlich Suchmaschienen verwendet, jedoch wird nicht die Mehtode gezeigt, die ich suche.
    Ich brauch nämlich: Zeile für Zeile.
    Sie zeigen: text;Text;Hello;World; )


    Danke nochmals im Voraus :)
    Das Auslesen der Werte funktioniert sinngemäß umgekehrt:

    VB.NET-Quellcode

    1. 'ArrayLists initialisieren (das sind Collections, die fast wie Arrays funktionieren)
    2. Dim spalte1, spalte2, spalteN As New ArrayList
    3. 'Jede Zeile durchgehen
    4. For Each r As DataGridViewRow In MyDGV.Rows
    5. spalte1.Add(r.Cells("Titel_Spalte1")) 'hier kann auch der Spaltenindex benutzt werden, wenn der Titel nicht bekannt ist
    6. spalte2.Add(r.Cells("Titel_Spalte2")) 'z.B. r.Cells(1)
    7. spalteN.Add(r.Cells("Titel_SpalteN"))
    8. Next
    9. 'Das GetType(String) kann evtl. wegfallen. Hier nur zur Verdeutlichung, dass das System.Array Elemente vom Typ String enthält.
    10. IO.File.WriteAllLines("datei1", CType(spalte1.ToArray(GetType(String)), String()))
    11. ...
    Gruß
    hal2000