Mehrdimensionales Array mit Txt Daten befüllen

  • VB.NET

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

    Mehrdimensionales Array mit Txt Daten befüllen

    Hallo Leute,

    ich habe eine Textdatei mit 10 Zeilen.
    In jeder Zeile stehen Werte (Strings) die durch ein Semikolon getrennt sind.

    Mein Ziel ist es ein Array zu erstellen welches in der ersten Dimensionen die Zeilennummer speichert
    und in der zweiten Dimension die Daten der Zeile.

    Kennt ihr da einen guten weg das zumachen?

    Ich komme da momentan nicht wirklich weiter... bekomme nur die gesamte Zeile in eine Dimension
    aber eben nicht alle Daten getrennt in der Zweiten Dimension.
    @Petersilie Warum muss es ein mehrdimensionales Array sein?
    Mach Dir eine Klasse, die alle Daten einer Zeile enthält und dann eine List(Of DIESE_KLASSE).
    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!
    @RodFromGermany das muss es gar nicht, es kam mir nur als erstes in den Kopf :)
    Gar keine schlechte Idee, Danke.

    Habe es jetzt wie folgt gemacht:

    VB.NET-Quellcode

    1. Imports System
    2. Imports System.IO
    3. Imports System.Collections
    4. Module Verfasser_Daten
    5. Private Function counter(ByVal file As String) As Integer
    6. Dim fs As New IO.StreamReader(file)
    7. Dim counting As Integer
    8. While Not fs.EndOfStream
    9. fs.ReadLine()
    10. counting += 1
    11. End While
    12. fs.Close()
    13. Return counting
    14. End Function
    15. Sub verfasser()
    16. Const datei As String = "C:\Users\max.bader\Desktop\Verfasser.txt"
    17. Dim lineReader As New IO.StreamReader(datei)
    18. Dim lines As Integer = counter(datei)
    19. Dim i As Integer
    20. Dim j As Integer
    21. Dim arr() As String
    22. Dim arr_2(lines, 8) As String
    23. Dim inhalte As String
    24. Do While Not lineReader.EndOfStream
    25. inhalte = lineReader.ReadLine()
    26. arr = inhalte.Split(";")
    27. For j = 0 To UBound(arr)
    28. arr_2(i, j) = arr(j)
    29. Console.WriteLine(arr_2(i, j))
    30. Next j
    31. i += 1
    32. Loop
    33. lineReader.Close()
    34. End Sub
    35. End Module

    Petersilie schrieb:

    Habe es jetzt wie folgt gemacht:
    Da passiert doch gar nix. :?:
    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!
    @RodFromGermany Ja der Code war nicht so Bombe, habe es nochmal etwas abgeändert.
    Der unten stehende Code funzt, die erste Dimension erhält eine feste Größe da es eine klare Grenze für die Spalten gibt.

    Ist weder eine schöne noch eine gute Lösung aber es erfüllt den Zweck.

    VB.NET-Quellcode

    1. Private Function counter(ByVal file As String) As Integer
    2. Dim fs As New IO.StreamReader(file)
    3. Dim counting As Integer
    4. While Not fs.EndOfStream
    5. fs.ReadLine()
    6. counting += 1
    7. End While
    8. fs.Close()
    9. Return counting
    10. End Function
    11. Sub verfasser()
    12. Const datei As String = "C:\Users\ich\Desktop\Verfasser.txt"
    13. Dim fs As New IO.StreamReader(datei)
    14. Dim lines As Integer = counter(datei)
    15. Dim getUserData() As String
    16. Dim i As Integer = 0
    17. Dim j As Integer = 0
    18. Dim arr() As String 'Array für Split Funktion
    19. Dim inhalte As String 'Zeilen Inhalte die gesplittet werden
    20. ReDim getUserData(9, lines)
    21. Do While Not fs.EndOfStream
    22. inhalte = fs.ReadLine()
    23. arr = inhalte.Split(";")
    24. For j = 0 To UBound(arr)
    25. getUserData(j, i) = arr(j)
    26. Next j
    27. i += 1
    28. Loop
    29. fs.Close()
    30. End Sub
    @Petersilie Sieh Dir mal dies an:

    VB.NET-Quellcode

    1. Dim lines() = IO.File.ReadAllLines(DEIN_PFAD)
    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!