Announcement

Collapse
No announcement yet.

Datei speichern & wieder anzeigen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Datei speichern & wieder anzeigen

    Großen Dank an euch beide! Aber ich habe mich nun entschlossen, dass ganze in einer Form zu machen, weil ich bei dem anderen einfach nicht mehr weiterweiß! (Ich kam von einer Fehlermeldung zur nächsten)
    Ein paar Fragen hätte ich aber doch noch:
    1. Ich schreibe eine Liste mit "File.AppendAllLine(@"C:\Users....")" in eine txt-Datei, jedoch steht da immer noch "System.Windows.Forms.TextBox, Text: ". Geht das auch ohne, wenn ja wie? Wenn nein, wie lösche ich nur diese Wörter?
    2. Wie gebe ich die txt-Datei in einer ListBox aus? Schön Zeile für Zeile.
    3. Ich möchte einen Namen in der ListBox anklicken und über einen Button "Bearbeiten", bearbeiten. Wie kann ich das mit dem Button realisieren, bzw. kann man den Namen auch gleich in der TextBox ausgeben?

    Wenn es irgendwo einfacher geht, bitte gebt mir Bescheid! Oder falls es was besseres als ListBox gibt?
    Noch einen schönen Abend!

  • #2
    1.
    https://stackoverflow.com/questions/...m-listt-to-txt

    2.
    Eine Schleife über die Liste und die Box mit add füllen
    http://openbook.rheinwerk-verlag.de/...04454ddc1903b5

    3. Wozu einen Button, wenn der Eintrag aus der Listbox per Klick ausgewählt werden kann?
    https://www.codeproject.com/Question...-csharp-visual
    Christian

    Comment


    • #3
      Danke, für die Antwort. Jedoch funktioniert bei mir die 1. Frage schon nicht. Grundsätzlich weiß ich ja, wie man was in eine txt einfügt, aber eben ohne "System.Windows.Forms.TextBox, Text: ". Das möchte ich nämlich nicht dabeihaben, da ich wirklich nur Namen in der ListBox ausgeben will.


      Comment


      • #4
        Nunja, dort wird gezeigt, wie man in die Datei schreibt.
        Wenn bei dir das gewünschte Ergebnis nicht herauskommt, wirst du wohl ein Fehler in der Programmierung haben

        Code:
         StreamWriter file = new System.IO.StreamWriter(speichern);
        foreach(string line in ausgabeListe)    
        file.WriteLine(line);
        file.Close();
        Christian

        Comment


        • #5
          StreamWriter file = new System.IO.StreamWriter(@"C:\Users\Public\Documents \Probe.txt");
          foreach (string line in names)
          file.WriteLine(line);
          file.Close();

          Nun ja, das ist mein Code. names ist die Liste. Gibt es denn dann eine Möglichkeit nur den einen Satzteil zu löschen?

          Comment


          • #6
            Dann wird wohl
            System.Windows.Forms.TextBox, Text
            ein Listeneintrag sein.
            Diesen dann vorher aus der Liste löschen
            Christian

            Comment


            • #7
              Aber ich habe halt mal eine TextBox, wo ich den Namen einlese?
              Wie könnte man den Eintrag löschen?
              textBox1.ToString(); // Die Variante verwende ich

              Comment


              • #8
                Ich denke wir reden hier von einer Liste??
                textBox1.ToString(); bekommst du das Objekt

                textBox1.Text ergibt den Text der Box

                Christian

                Comment


                • #9
                  Ja eh.
                  var names = new List<string>();
                  names.Add(textBox1.ToString());
                  names.Add(textBox2.ToString());

                  Falsch
                  Siehe Beitrag #8
                  Christian

                  Comment


                  • #10
                    Ups, mein Fehler!

                    Comment


                    • #11
                      Jetzt habe ich noch zwei Probleme. Ich kann nur "file2.WriteLine(line);" und nicht "file2.AppendAllLines(line);", vielleicht doch? Ich will ja nicht die alten Elemente überschreiben.
                      StreamWriter file2 = new System.IO.StreamWriter(@"C:\Users\Public\Documents \Probe.txt");
                      foreach (string line in names)
                      file2.WriteLine(line);
                      file2.Close();

                      Zweites Problem:

                      public Form1()
                      {
                      InitializeComponent();
                      System.IO.StreamReader file = new System.IO.StreamReader(@"C:\Users\Public\Documents \Probe.txt");
                      int counter = 0;
                      while(file.ReadLine() != null)
                      {
                      counter++;
                      }
                      for(int i = 0; i<=counter; i++)
                      {
                      if(file.ReadLine() == null)
                      {
                      break;
                      }
                      listBox1.Items.Add(file.ReadLine());
                      }
                      file.Close();
                      }
                      Jetzt müsste es mir in der ListBox eigentlich den eingegebenen Text anzeigen?

                      Comment


                      • #12
                        1. Den ersten Satz verstehe ich nicht.

                        2. Wozu einen Counter und die Schleife? Wozu da if ==null?
                        Das while prüft auf null und liest die Zeile
                        Code:
                        while ((inputLine = file.ReadLine()) != null)
                        {
                        listBox1.Items.Add(inputLine);
                        }
                        file.Close();
                        Christian

                        Comment


                        • #13
                          2. Frage funktioniert jetzt.
                          1. Frage: file2.WriteLine(line); // überschreibt auch die Zeilen die vorher schon im Dokument drinnen waren, von vorheriges mal starten ==> Problem. Ich will ja Sachen hinzufügen, sodass die txt immer umfangreicher wird.
                          Neue Frage: Ich muss Form1 nach dem hinzufügen zur ListBox aktualisieren, dass das neue auch angezeigt wird. Wie?

                          Comment


                          • #14
                            Dann muss du die Datei appenden -> anhängen
                            https://docs.microsoft.com/en-us/dot...ystem_Boolean_

                            Listbox1.Refresh()
                            Listbox1.Update()
                            Christian

                            Comment


                            • #15
                              Ich kann aber leider nicht "file2.AppendAllLines(line);" schreiben. AppenAllLines gibt es in diesem zusammenhang nicht.
                              Listbox1.Refresh()
                              Listbox1.Update() //funktioniert beides nicht

                              Comment

                              Working...
                              X