.txt box zeile für zeile auslesen und in jeweilige TextBox einfügen

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von Merio.

    .txt box zeile für zeile auslesen und in jeweilige TextBox einfügen

    Hallo Community!

    Ich bin jetzt schon seit zwei Wochen dabei, ein kleines Tabellenkalkulationsprogramm zu erstellen. Ich habe jetzt gute 250 Seiten Quelltext und bin fast fertig, bis auf dieses Problem:

    Ich habe 200 (!) TextBoxen, jede für eine Zelle z. B. A1 - A20 oder B1 - B20 (Jede Spalte besitzt 20 Zeilen). Jetzt möchte ich jede TextBox als eine Zeile in einer .txt - Datei speichern. Ich bin durch Google etc. bereits so weit vorgedrungen, dass ich weiß, dass das mit einer Schleife zu erledigen ist. Habe aber keinen blassen schimmer, wie ich das machen könnte :( .

    Mit dem Einlesen müsste das doch dann das gleiche sein, oder nicht? Ich hoffe, ihr könnt mir helfen, denn jetzt bin ich schon so weit gekommen und nun droht mein Projekt zu scheitern ;(

    Alex
    1. Den ganzen Text auslesen und in Zeilen einteilen

      VB.NET-Quellcode

      1. Dim lines() As String = IO.File.ReadAllLines("Dein Dateipfad.txt") 'Liest die Datei Zeilenweise aus und packt sie in ein String-Array

    2. Mit Split die einzelnen Einträge trennen:

      VB.NET-Quellcode

      1. For Each line As String In lines 'Geht jede einzelne Zeile durch.
      2. Dim values() As String = line.Split(";") 'Teilt die Zeile in Spalten ein
      3. 'Hier kannst du mit jeder Spalte machen, was du willst. Spalte eins ist values(o), Spalte 2 ist values(1) usw.
      4. Loop

    3. In die entsprechende TextBox einfügen
    Das hab´ Ich jetzt probiert, aber wenn ich zwei Zeilen in der Textdatei habe, möchte ich es so machen:

    VB.NET-Quellcode

    1. TextBox1.Text = values(0)
    2. TextBox2.Text = values(1)


    Aber irgendwie will es nicht klappen: OutOfRangeException: Der Index war außerhalb des Arraybereichs

    Was kann ich machen, dass es funktioniert?
    Also, wenn ich das so anwende, dann funkt das ned.. HILFE

    VB.NET-Quellcode

    1. Dim lines() As String = IO.File.ReadAllLines(Environment.CurrentDirectory & "\config.cfg") For Each line As String In lines
    2. Dim values() As String = line.Split(";") Next
    3. '<---------------------------------------------------->
    4. TextBox4.Text = lines(0) TextBox1.Text = lines(1) TextBox6.Text = lines(3) TextBox5.Text = lines(2)Label3.ForeColor = System.Drawing.Color.FromArgb("&H" + lines(4))Label3.BackColor = System.Drawing.Color.FromArgb("&H" + lines(5))Label4.ForeColor = System.Drawing.Color.FromArgb("&H" + lines(5))TextBox7.Text = lines(6)TextBox8.Text = lines(7)If lines(8) = True ThenMe.Opacity = 0Form2.Show()Me.ShowInTaskbar = FalseEnd IfIf lines(8) = False ThenMe.Opacity = 100Me.ShowInTaskbar = TrueEnd IfIf lines(9) = True ThenCheckBox1.Checked = TrueTextBox4.Enabled = TrueElseCheckBox1.Checked = FalseTextBox4.Enabled = False End If




    //Edit
    Das Forum nimmt die Returns raus, kA wieso..
    LG
    Merio

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

    der Code sollte an sich richtig sein(die Returns kannst du auch manuell einfügen, oder den Code in den Editor kopieren von dort in die Zwischenablage kopieren und erst dann einfügen)...was funktioniert denn nicht...
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    Ich habs geschafft! xD
    Man muss doch die Values benutzen und zwar so:

    VB.NET-Quellcode

    1. Private Function auslesen() Dim confisda As Boolean = File.Exists(Environment.CurrentDirectory & "\config.cfg") If confisda = True Then
    2. Dim values() As String Dim lines() As String = IO.File.ReadAllLines(Environment.CurrentDirectory & "\config.cfg") For Each line As String In lines values = line.Split(";") Next


    und dann die Textboxen füllen:

    VB.NET-Quellcode

    1. TextBox4.Text = values(0) TextBox1.Text = values(1) TextBox6.Text = values(3) TextBox5.Text = values(2) TextBox7.Text = values(4) TextBox8.Text = values(5) If values(7) = "True" Then Me.Opacity = 0 Hackform.Show() Me.ShowInTaskbar = False End If If values(7) = "False" Then Me.Opacity = 100 Me.ShowInTaskbar = True End If If values(6) = "True" Then CheckBox1.Checked = True TextBox4.Enabled = True Else CheckBox1.Checked = False TextBox4.Enabled = False End If Else Call save() Call auslesen() End If End Function



    //Edit
    Forum nimmt immernoch die Returns raus -.-
    LG
    Merio