Daeti auslesen und in array speichern

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Mad Andy.

    Datei auslesen und in array speichern

    Ich bin neu in dem Forum (und in VB ;) also erstmal hallo an alle!

    Folgendes Problem konnte ich auch mit der Hilfe nicht lösen:
    ich möchte den Inhalte einer textdatei (Inhalt durch "," getrennt) auslesen und in ein array schreiben. Erste Frage: kann man das über den Streamreader relasieren. Ich hab es (mit Hilfe des Suche) so probiert:

    Quellcode

    1. Dim TextFile = My.Computer.FileSystem.ReadAllText(TextBox1.Text)
    2. Dim Pos = TextFile.IndexOf(Environment.NewLine)
    3. Dim Feld() = TextFile.Substring(0, Pos).Split(",")
    4. TextFile = TextFile.Substring(Pos)
    5. [...]


    Leider bekomme ich eine OutOfRangeException... Warum? Was mache ich falsch? Textdat wird korrekt übergeben.

    Danke schonmal im Voraus.

    Gruß Tenderman

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

    Hallo
    Du hast keine Text Datei angegeben sondern eine TextBox, das löst den Fehler aus.
    Du schreibst:

    VB.NET-Quellcode

    1. Dim TextFile = My.Computer.FileSystem.ReadAllText(TextBox1.Text)

    Muß heißen:

    VB.NET-Quellcode

    1. Dim TextFile As String = My.Computer.FileSystem.ReadAllText("D:\Test.txt")
    2. ' oder
    3. Dim TextFile As String = TextBox1.Text
    Hi!

    @ wincnc: Er hat den Pfad zu ner Textdatei angegeben (via Textbox).

    @ tenderman: Split schreibts dir schon in ein Array ;)

    VB.NET-Quellcode

    1. Dim TextData = My.Computer.FileSystem.ReadAllText(TextBox1.Text)
    2. Dim myStringArray() as String
    3. myStringArray = TextData.Split(",")
    danke für die Antwort, klappt aber leider beides nicht... bei direkter Übergabe des Pfades (1.Variante) wirft das Prog immer noch eine OutOfRangeExc.
    Bei Variante 2 gibt es dann eine ArgumentOutOfRange Exception. Wieder bei der Deklarierung des Feldes:

    Dim Feld() = TextFile.Substring(0, Pos).Split(",")

    Gruß Tenderman

    _______

    Huch, da war ich nicht schnell genug mit tippen. Das split war das Problem!

    Könnte Ihr mir eventl. noch schnell nen Tipp gebem, wie ich am einfachsten das Array über eine Listbox wieder ausgeben kann?

    Dankeschön!

    ________

    Okay, hab es selber hinbekommen. Falls ein Newbee (wie ich ;) mal hier nachschlagen sollte:

    VB.NET-Quellcode

    1. For i As Integer = 0 To Anzahl
    2. ListBox1.Items.Add(Feld(i))
    3. i = i + 1
    4. Next



    Tenderman


    EDIT by Mad Andy:
    Bitte keine Dreifachpostings mehr, es gibt eine Editier-Funktion!
    Ich hab die mal zusammengelegt.

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

    Die korrekte Variante um nen Array in eine Listbox zu schreiben wäre:

    VB.NET-Quellcode

    1. For i as Long = 0 to myArray.UpperBound(0)
    2. ListBox1.Items.Add (myArray(i))
    3. Next i
    oder

    VB.NET-Quellcode

    1. For each s as String in myArray
    2. ListBox1.Items.Add (s)
    3. Next s


    mfG Andy