Variablen aus Datei einlesen

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von exc-jdbi.

    Variablen aus Datei einlesen

    Hallo zusammen,

    ich bin (noch) kein guter Programmierer und habe folgendes Problem bei einer Konsolenanwendung in VB.Net, dass ich nicht lösen kann.
    Ich habe eine Textdatei, in der meine Variablen in folgender Matrixform eingetragen sind:
    x1 x2 x3 x4 x5 …
    3 5 -3 4 33
    12 0 -3 2 -12


    Nun versuche ich, die Variablen aus der zweiten und weiteren Zeilen in einen Array zu schreiben, bringe es aber irgendwie nicht hin. Probiert habe ich es, in dem ich die Zeile als String eingelesen habe und mit der .split Funktion versucht habe, die Zeile aufzuteilen.

    Leider will es nicht gelingen.
    Ich würde mich sehr freuen, wenn ihr mir einen Ansatz nennen könnt - danke!

    *Topic verschoben*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Willkommen im Forum.
    Der Ansatz ist richtig/möglich. Woran scheitert es nun? Nach dem Zeilen-Split hast Du ein StringArray. Und Dessen Einzelbestandteile wandelst Du um. So wie es aussieht, hast Du dort Ganzzahlen. Also Integers. Und um die aus Strings zu erzeugen, nimm Dim EineIntegervariable = Integer.Parse(DeinZahlenText). Oder Du nimmst eine List(Of Integer):

    VB.NET-Quellcode

    1. Dim DeineIntegerListe As New List(Of Integer)
    2. '...
    3. DeineIntegerListe.Add(Integer.Parse(DeinZahlenText))
    4. 'und am Ende:
    5. DeinIntegerArray = DeineIntegerListe.ToArray
    Geht vielleicht noch anders, aber so für den Anfang.
    btw: Du schreibst Konsole, aber wir sind hier in WPF. Warum?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Hallo @Schwabe12345

    Freundliche Grüsse

    exc-jdbi

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Option Strict On
    2. Option Explicit On
    3. Imports System.IO
    4. Public Module Program
    5. Public Sub Main()
    6. Dim filename = "DeinTextDateiNebenDerExe.txt"
    7. Dim txtarr = GetFileData(filename)
    8. 'Hier sind deine Zahlen drin
    9. Dim res = SplittData(txtarr)
    10. PrintOut(res)
    11. Console.ReadLine()
    12. End Sub
    13. Private Sub PrintOut(i32()() As Int32)
    14. Dim tab = Convert.ToChar(9)
    15. For Each a() As Int32 In i32
    16. For Each t As Int32 In a
    17. Console.Write("{0}{1}", t, tab)
    18. Next
    19. Console.WriteLine()
    20. Next
    21. Console.WriteLine()
    22. End Sub
    23. Private Function SplittData(str() As String) As Int32()()
    24. If str IsNot Nothing AndAlso str.Length > 0 Then
    25. 'Environment.NewLine
    26. Dim itmp() As Int32, s() As String
    27. Dim res = New List(Of Int32())
    28. For i As Int32 = 1 To str.Length - 1
    29. s = str(i).Split
    30. itmp = s.Select(Function(x) Convert.ToInt32(x)).ToArray
    31. res.Add(itmp)
    32. Next
    33. Return res.ToArray
    34. End If
    35. Return Nothing
    36. End Function
    37. Private Function GetFileData(filename As String) As String()
    38. If Not File.Exists(filename) Then Return Nothing
    39. Using sr = New StreamReader(filename)
    40. Dim res = New List(Of String)
    41. While Not sr.EndOfStream
    42. res.Add(sr.ReadLine)
    43. End While
    44. Return res.ToArray
    45. End Using
    46. End Function
    47. End Module

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „exc-jdbi“ ()