Datei speichern



  • Hallo
    Ich habe in der MSDN dies gefunden. Jetzt brauche ich Eure Hilfe. Was muss ich jetzt unter den Button-speichern_Click schreiben das er mir den Text aus der Text-Box in eine Datei speichert?

    [code]
    private:
       void button1_Click( Object^ /*sender*/, System::EventArgs^ /*e*/ )
       {
          Stream^ myStream;
          SaveFileDialog^ saveFileDialog1 = gcnew SaveFileDialog;
          saveFileDialog1->Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
          saveFileDialog1->FilterIndex = 2;
          saveFileDialog1->RestoreDirectory = true;
          if ( saveFileDialog1->ShowDialog() == ::DialogResult::OK )
          {
             if ( (myStream = saveFileDialog1->OpenFile()) != nullptr )
             {
    
                // Code to write the stream goes here.
                myStream->Close();
             }
          }
       }
    

    [/code]
    Vielen Dank im Voraus
    Heinerich



  • Mit der Klasse StreamWriter.
    http://msdn.microsoft.com/de-de/library/6ka1wd3w.aspx
    Simon



  • Hallo
    Unter der Adresse habe ich nichts für C++ oder C++/CLI gefunden.
    ich hoffe nicht das wir an einander vorbei reden, der Text steht in der TexBox1 und soll in eine Datei gespeichert werden, mit Dateiamgabe.
    Könntest du mir den Anfang des Codes zeigen?
    Danke im Voraus
    Heinerich



  • Heinerich schrieb:

    Unter der Adresse habe ich nichts für C++ oder C++/CLI gefunden.

    C++/CLI ist .Net ... VB.NET ist .NET ... C# ist .NET ... da steht genau wie man Daten in eine Datei schreibt



  • Kleines Besipiel

    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
        System::IO::StreamWriter ^textDatei = gcnew System::IO::StreamWriter("C:\\test\\daten.txt");
        textDatei->WriteLine(textBox1->Text);
        textDatei->Close();
        }
    

    Mit fileDialog könnte das vereinfacht so aussehen

    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
        if (saveFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK){
            System::IO::StreamWriter ^textDatei = gcnew System::IO::StreamWriter(saveFileDialog1->FileName);
            textDatei->WriteLine(textBox1->Text);
            textDatei->Close();
            }
        }
    


  • Hallo
    Bei der ersten Version sagt er das die Datei nicht vorhanden wäre. Dann habe ich de Datei umbenannt in Adressen.txt beim compilieren kein Fehler aber es steht nichts in der Datei. Warum nicht?
    Bei der saveFileDialog Versioon sagt beim compilieren das saveFileDialog nicht deklariert wäre. Warum nicht?
    Vielen Dank für deine Antwort

    Heinerich



  • Heinerich schrieb:

    Bei der ersten Version sagt er das die Datei nicht vorhanden wäre. Dann habe ich de Datei umbenannt in Adressen.txt beim compilieren kein Fehler aber es steht nichts in der Datei. Warum nicht?

    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
        System::IO::StreamWriter ^textDatei = gcnew System::IO::StreamWriter("C:\\test\\daten.txt");
        textDatei->WriteLine(textBox1->Text);
        textDatei->Flush();
        textDatei->Close();
    }
    

    Bei der saveFileDialog Versioon sagt beim compilieren das saveFileDialog nicht deklariert wäre. Warum nicht?

    weil es nicht deklariert ist 🤡 ... zieht mal den SaveFileDialog auf die Form ... den zweiten Fehler darfst Du dann selber suchen 😉 ... kleiner Tipp - C++ achtet auf Groß-/Kleinschreibung

    hand, mogel



  • kleiner Tipp - C++ achtet auf Groß-/Kleinschreibung

    Noch ein kleiner Tipp: C++/CLI auch.



  • Hallo zusammen
    Erst schon mal vielen Dank für eure Hilfe.
    Der Fehler war, in der Path-Angabe darf kein Unterordner drin sein es musste so sein ("C:\\test.txt"); dann speichert er. Es wird ja auch kein Ordner angelegt sondern ein Texteditor.
    Ich will darin mehrere Eingaben hintereinander speichern. Aber er löscht immer den vorhandenen Eintrag. Wie muss man ihm das Sagen das er das nicht tut?

    Gruß

    Heinerich





  • Ich habe geschaut und ich hoffe das dies richtig ist?

    [code]
    public:
    StreamWriter(
        String^ path, 
        bool append
    )
    

    [/code]
    Es muss append drin sein wegen dem Anhängen, richtig?
    Aber wo muss das hin? Ich habe es im Construktor versucht, nach dem Construktor mit public: deklariert, oder im speichern_Click ereignis aber ich bekomme immer Fehler beim Kompilieren
    Würdest du mir sagen wie und wo es hinmuss?



  • Es gibt ein Bsp. im Link von Knuddelbär (bei der Variante die Du ausgewählt hast, string / bool) !!!
    Ich verstehe dein Problem nicht.
    Simon


Log in to reply