2016-06-28 2 views
-1

Hier ist das Problem: Ich habe zwei Klassen. Formular 1 erstellt eine TXT-Datei und legt zwei Werte (Strings) fest. Jetzt möchte ich diese zwei Zeichenfolgen durch Drücken einer Taste (bDirekt), und setzen Sie jede Zeichenfolge in einem Textfeld in Formular 2.Wie erhalte ich Werte aus einer Textdatei und setze sie in eine Textbox?

Form 1 (sollte so weit wie ich weiß, aber bitte sagen Sie mir, wenn ich ' m falsch):

public void Txfw() 
    { 
     string txBetrag = gBetrag.Text; 
     string txMonate = gMonate.Text; 

     string[] vars = new string[] { txBetrag, txMonate }; 
     using (StreamWriter sw = new StreamWriter(@"C:\Users\p2\Desktop\variablen.txt")) 
     { 

      foreach (string s in vars) 
      { 
       sw.WriteLine(s); 
      } 
     } 
    } 

Form 2 (hat keine Ahnung, wie weiter gehen):

private void bDirekt_Click(object sender, RoutedEventArgs e) 
    { 
     using (StreamReader sr = new StreamReader("variables.txt")) ; 

     string line = ""; 
     while ((line = sr.ReadLine()) != null) 
     { 
      monate2.Text = 
     } 

    } 

ich wirklich zu schätzen Ihre Hilfe.

Antwort

0

dieses

StringBuilder sb = new StringBuilder(); 
    using (StreamReader sr = new StreamReader(@"C:\Users\p2\Desktop\variablen.txt")) 
    { 
        string line; 

        // Read and display lines from the file until 
        // the end of the file is reached. 
        while ((line = sr.ReadLine()) != null) 
        { 
         sb.Append((line); 
        } 
    } 
    monate2.Text = sb.Tostring(); 

UPDATE Versuchen: getrennt Zeile eins mit dem Rest des Textes, können Sie dies versuchen. Es gibt immer bessere Wege, dies zu erreichen.

StringBuilder sb = new StringBuilder(); 
    string headerLine = string.Empty; 
    int currentLine = 0; 
     using (StreamReader sr = new StreamReader(@"C:\Users\p2\Desktop\variablen.txt")) 
     { 
         string line; 

         // Read and display lines from the file until 
         // the end of the file is reached. 
         while ((line = sr.ReadLine()) != null) 
         { 
          currentLine++; //increment to keep track of current line number. 
          if(currentLine == 1) 
          { 
          headerLine = line; 
          continue; //skips rest of the processing and goes to next line in while loop 
          } 
          sb.Append((line); 

         } 
     } 
     header.Text = headerLine; 
     monate2.Text = sb.ToString(); 
+0

Funktioniert perfekt und tut fast das, was ich wollte :). Aber wie muss ich es ändern, damit es die erste Zeile der .txt-Datei in einem anderen Textfeld ausgibt? Aber es verkörpert beide Linien in einem. –

+0

Bitte beachten Sie das Update, das ich gepostet habe – Vinod

Verwandte Themen