Variablen aus Textdatei auslesen welche nur durch ein Komma getrennt sind

  • Allgemein

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Variablen aus Textdatei auslesen welche nur durch ein Komma getrennt sind

    Hallo,
    ich bin gerade dabei ein Programm zu schreiben und bin auf ein Problem gestoßen.
    Es soll eine solche Textdatei ausgelesen werden.

    ID,Name1,Benutzergruppe1
    ID,Name2,Benutzergruppe2
    ID,Name3,Benutzergruppe3
    ID,Name4,Benutzergruppe2

    Ich würde mich über eine Antwort sehr freuen.

    EDIT:
    Es soll der in der textbox eingegebene Name gesucht werden, dann in der gleichen Zeile die Benutzergruppe ausgelesen werden und ausgegeben werden.

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

    Du könntest die Split-Funktion verwenden.

    Z.B dein Beispiel

    VB.NET-Quellcode

    1. Dim eingabeString As String = "ID,Name1,Benutzergruppe1" & Chr(13) &
    2. "ID, Name2, Benutzergruppe2" & Chr(13) &
    3. "ID, Name3, Benutzergruppe3" & Chr(13) &
    4. "ID, Name4, Benutzergruppe2" 'Chr(13) entspricht Zeilenumbruch
    5. For Each el In eingabeString.Split(Chr(13)) 'Diese For-Schleife wird wegen den Zeilenumbrüchen benötigt
    6. Dim elemente As String() = el.Split(","c) '
    7. 'Hier könnte DEIN Code stehen...
    8. MessageBox.Show("ID: " & elemente(0) & Chr(13) & "Name: " & elemente(1) & Chr(13) & "Gruppe: " & elemente(2))
    9. Next



    Edit:
    In der For-Schleife, nach dem Kommentar, kannst du deine Suchfunktion einbauen

    VB.NET-Quellcode

    1. If String.equals(elemente(1), TextBox1.Text) Then
    2. 'Mache irgendwas
    3. End If

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

    Danke für die schnelle Antwort... Aber anscheinend ist diese Lösung leider nicht mit den Webclienten kompatibel.
    Daher ist die For Each Schleife nach der 1. Zeile beendet.

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. Dim wc As New System.Net.WebClient
    3. Dim eingabeString As String = wc.DownloadString("http://*****.**/******.***")
    4. For Each el In eingabeString.Split(Chr(13)) 'Diese For-Schleife wird wegen den Zeilenumbrüchen benötigt
    5. Dim elemente As String() = el.Split(","c) '
    6. MessageBox.Show("ID: " & elemente(0) & Chr(13) & "Name: " & elemente(1) & Chr(13) & "Gruppe: " & elemente(2))
    7. If String.Equals(elemente(1), textbox1.Text) Then
    8. MsgBox("gefunden")
    9. Else
    10. MsgBox("nichts gefunden")
    11. End If
    12. Next
    13. End Sub

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

    NBischof schrieb:

    ID,Name1,Benutzergruppe1
    ID,Name2,Benutzergruppe2
    ID,Name3,Benutzergruppe3
    ID,Name4,Benutzergruppe2

    Befass dich mal mit Datenmodellierung, denn imo liegt hier eine 1:n - Relation vor, zwischen Benutzergruppe und Benutzer.

    Dazu braucht man mehrere Tabellen - hast du bereits mehrere Tabellen?

    Da wäre es sinnvoll, nicht jede Tabelle in eine eigene Datei zu tun, sondern alle Tabellen in eine Datei zu packen.
    Also ein typisiertes Dataset gestalten.

    Daten laden, speichern, verarbeiten
    Sp könnte man das realisieren:

    VB.NET-Quellcode

    1. Dim WithEvents wc As Net.WebClient = New Net.WebClient
    2. Dim mysearch As String
    3. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    4. TextBox1.Text = "Name3"
    5. wc.DownloadStringAsync(New Uri("http://www.***********.***/****.******"))
    6. End Sub
    7. Private Sub wc_DownloadStringCompleted(ByVal sender As Object, ByVal e As System.Net.DownloadStringCompletedEventArgs) Handles wc.DownloadStringCompleted
    8. Dim contentsplits As String() = Split(e.Result, vbLf)
    9. For i As Integer = 0 To contentsplits.Length - 1
    10. If contentsplits(i).ToLower.Contains(TextBox1.Text.ToLower) Then
    11. mysearch = contentsplits(i).Substring(contentsplits(i).LastIndexOf(",") + 1)
    12. End If
    13. Next
    14. MessageBox.Show(mysearch)
    15. End Sub