Textdatei Spaltenweise auslesen

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von elemex01.

    Textdatei Spaltenweise auslesen

    Hallo alle zusammen,

    ich bin neu hier in diesem Forum, da es mir schon oft weitergeholfen hat. Leider finde ich einfach zu meinem aktuellen Problem nichts, beziehungsweise nichts was ich mit meinem (noch nicht riesigen) Kenntinisstand adaptieren kann. Daher hoffe ich, ihr könnt mir bei meinem Problem helfen.

    Also:
    Ich möchte eine Textdatei Spaltenweise auslesen. Die Textdatei ist wie folgt aufgebaut: In der ersten Zeile stehen Überschriften mit Tab getrennt. Die erste Überschrift ist dabei "rec_time". Darunter jeweils Zahlenwerte auch mit Tab getrennt. Ich möchte die einzelnen Spalten (ohne Überschriften) in Listen vom Typ Double schreiben. Dabei ist wichtig, dass ich nur bestimmte Spalten brauche (Diejenigen, die ich unten raus suche). Ich hab es auch versucht und meiner Meinung nach sieht es gut aus, funktioniert nur leider nicht. Die Listen sind alle leer wenn ich sie mir in der Console ausgeben lasse. Das If-Kriterium > 17 nutze ich zur Überprüfung, ob die Datei leer ist, ist sie aber nicht, hat ca 30 Spalten. Ich würde mich echt riesig freuen, wenn ihr mir sagen könntet warum das ganze nicht funktioniert oder mir Anregungen geben könntet, wie ich es besser machen kann. Danke!!!!!

    VB.NET-Quellcode

    1. If My.Computer.FileSystem.FileExists(datei) Then
    2. FileOpen(1, datei, OpenMode.Input)
    3. While EOF(1) = False
    4. Dim zeile As String = LineInput(1)
    5. Dim cols As String() = zeile.Split("\t")
    6. If cols.Length > 17 And cols(0) <> "rec_time" Then
    7. lstFieldX.Add(Double.Parse(cols(22)))
    8. lstFieldY.Add(Double.Parse(cols(23)))
    9. lstEyeA.Add(Double.Parse(cols(6)))
    10. lstEyeX.Add(Double.Parse(cols(8)))
    11. lstEyeY.Add(Double.Parse(cols(7)))
    12. End If
    13. End While
    14. FileClose(1)
    15. End If


    Label und Codetag an VB.NET angepasst.
    ~Trade

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

    probierma so

    Visual Basic-Quellcode

    1. Dim fi = New FileInfo(datei)
    2. If fi.Exists Then
    3. For Each zeile In File.ReadAllLines(fi.FullName).Skip(1)
    4. Dim cols As String() = zeile.Split(Microsoft.VisualBasic.ControlChars.Tab)
    5. lstFieldX.Add(Double.Parse(cols(22)))
    6. lstFieldY.Add(Double.Parse(cols(23)))
    7. lstEyeA.Add(Double.Parse(cols(6)))
    8. lstEyeX.Add(Double.Parse(cols(8)))
    9. lstEyeY.Add(Double.Parse(cols(7)))
    10. Next
    11. End If

    Vielen vielen Dank für die schnellen Antworten. Beide Varianten funktionieren. Meine geht wenn ich nur das Tab richtig schreibe, die zweite von ErfinderDesRades geht auch. Hab mich zwar grün und blau geärgert, dass ich das mit dem Tab nicht gesehen hab, naja nach zu langem "auf den Code starren" wird man halt irgendwie blind.