Textdatei in Tabelle einlesen

  • VB.NET

Es gibt 45 Antworten in diesem Thema. Der letzte Beitrag () ist von RazerElite.

    Textdatei in Tabelle einlesen

    Hi,

    Hab da ein kleines problehm...

    Ich möchte aus einer Textdatei (Test.txt) nummern und namen in eine tabelle einlesen.
    Die Nummern sind immer mit einem | von den namen getrennt.

    Bsp.

    00493435343545|Beispielname Beispielname
    00494343546352|Beispielname Beispielname

    Jetzt soll das programm in der linken spalte die nummern untereinander eintragen und rechts die dazugehörigen namen.

    danke für eure hilfe

    Lg Razer Elite
    Danke für die schnelle Antwort hab noch nie mit einem Dataview gearbeitet... hab schon versucht bischen was zu erlesen aber bis jetzt nich viel erfolg...

    Wie sag ich den dem programm das er links vom | oder rechts ... richtig in die tabelle schreibt?
    Hi Danke,

    Hab jetzt mal noch ne Idee/Frage

    hab jetzt mal was versucht:

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. Dim DataTable As New DataTable
    3. DataTable.Columns.Add("Telefonnummer")
    4. DataTable.Columns.Add("Name")
    5. DataTable.Rows.Add("Dateipfad1", "Test")
    6. DataTable.Rows.Add("Dateipfad2")
    7. DataTable.Rows.Add("Dateipfad3")
    8. DataGridView_Telefonbuch.DataSource = DataTable
    9. End Sub


    Hab 2 Spalten und 3 zeilen gemacht.
    Geht das nicht das ich einfach den inhalt einer textbox durchgehe und dan jede zeile den | rausfilter und dementsprechend einlese(schreibe)?

    Das müste doch eigentlich mit relative wenig code gehn oder?
    ...
    Das problehm ist ich wies nicht wie ich ihm mitteile das er jede zeile einzeln abgeht und dan dementsprechent den | rausfiltert und wiedergibt.
    Gaaaaaaaaaanz wichtig:

    VB.NET-Quellcode

    1. Private DataTable1 As New DataTable
    2. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    3. ' ...
    4. End Sub
    Pack die Definition von DataTable1 oder so (nicht DataTable) in die Klasse, damit sie Dir als Instanz erhalten bleibt!
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ok habs geändert Danke,

    habs jetzt so...

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim DataTable As New DataTable
    3. Dim Pfad As String = Application.StartupPath & "\Telefonbuch.txt" '<- Befindet sich im Debug-Ordner, bzw dem Programmverzeichnis deiner exe.
    4. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    5. Dim lines() As String = System.IO.File.ReadAllLines(Pfad)
    6. DataTable.Columns.Add("Telefonnummer")
    7. DataTable.Columns.Add("Name")
    8. DataTable.Rows.Add(lines(1), "Name..")
    9. DataTable.Rows.Add(lines(2), "Name...")
    10. DataTable.Rows.Add(lines(2), "NAme....")
    11. DataGridView_Telefonbuch.DataSource = DataTable


    jetzt muss ich doch eig nurnoch den | in spalte eins rausbekommen und den namen ind spalte 2 eintragen

    so sieht das in der datei aus die aich auslese:

    00494343434343|NAme
    00493434343434|Name
    0049323232323|Name

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „RazerElite“ ()

    Sieht gut aus, funktioniert bei mir.
    Du solltest natürlich sicherstellen, dass die Zeilen 1 und 2 vorhanden sind (die Zählung beginnt bei 0).
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Dann mach so was (musst aber Deine Beschreibungf separat in einem Feld anlegen):

    VB.NET-Quellcode

    1. Dim i As Integer = 0
    2. For Each ll As String In Lines
    3. DataTable.Rows.Add(lines(i), DEIN_TEXT(i))
    4. i += 1
    5. Next
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    ok hat soweit alles funktioniert muss nurnoch den trennspricht rausebkommen und nummer von namen trennen...

    ging so iwie aber ich weis es nichmehr habs schon versucht

    If item.Contains(TextBox_Telefonnummer.Text) Then
    Dim temp() As String = item.Split("|"c)
    TextBox_Teilnehmername.Text = temp(1)
    Du kannst auch nach mehreren Zeichen splitten:

    VB.NET-Quellcode

    1. Dim ttt As String = "012345|jljköafvöjk ÄÖDLWÄDFKL"
    2. Dim pp() As String = ttt.Split(New Char() {"|"c, " "c})
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ja womit bist Du denn nicht zufrieden?
    Ich hab mir nur Deine Zeilen angesehen:
    00493435343545|Beispielname Beispielname
    und sehe da Vorname und Nachname oder so, faslls Du das auch noch trennen willst.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    ne will nur nummer und name trennen

    ich weis nur grad nich wie ich das in mein bisherigen programmablauf reinbekomme :)

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim DataTable As New DataTable
    3. Dim Pfad As String = Application.StartupPath & "\Telefonbuch.txt" '<- Befindet sich im Debug-Ordner, bzw dem Programmverzeichnis der exe.
    4. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    5. Dim lines() As String = System.IO.File.ReadAllLines(Pfad)
    6. DataTable.Columns.Add("Telefonnummer")
    7. DataTable.Columns.Add("Name")
    8. Dim Zeile As Integer = 0
    9. For Each ll As String In lines
    10. DataTable.Rows.Add(lines(Zeile), lines(Zeile))
    11. Zeile += 1
    12. Next
    13. DataGridView_Telefonbuch.DataSource = DataTable
    14. End Sub
    15. End Class

    VB.NET-Quellcode

    1. For Each ll As String In lines
    2. Dim pp() As String = ll.Split("|"c)
    3. DataTable.Rows.Add(pp(0), pp(1))
    4. Zeile += 1
    5. Next
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!