RichtTextBox -> speichern / öffnen



  • Ach das ist c# code, da wo ich das her hab stand c++

    kann mir jemand jeweils nen c++ code für speichern und öffnen geben?



  • Also mal als Beispiel:

    //Speichern unter-Dialog
    		void SaveAs() {
    			SaveFileDialog ^saveFileDialog1 = gcnew SaveFileDialog();
    
    			//Startverzeichnis vorgeben, danach immer das zuletzt 
    			 //angesteuerte Verzeichnis verwenden (Nicht die Vorgabe wiederherstellen
    			 saveFileDialog1->InitialDirectory = ".";
    			 saveFileDialog1->RestoreDirectory = false;
    
    			 //Filer für Dateien mit den Extension .txt und .*
    			 saveFileDialog1->Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
    
    			 //Ersten Filter als Vorgabe wählen
    			 saveFileDialog1->FilterIndex = 1;
    
    			 if (saveFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK)
    			 {
    				 SaveFile(saveFileDialog1->FileName);
    
    			 }
    
    		}
    

    Wobei Du natürlich das befüllen der Datei dann noch selbst machen musst, ist hoffentlich klar.

    Grüße Solick



  • kann mir jemand jeweils nen c++ code für speichern und öffnen geben?

    Das willst Du doch gar nicht... Du möchtest wahrscheinlich C++/CLI Code.
    Nicht?
    Simon



  • @theta: sorry, ich meinte c++/CLI

    @solick: Danke, aber:

    c:\dokumente und einstellungen\admin\eigene dateien\visual studio 2008\projects\sarp_pawn\sarp_pawn\Form1.h(234) : error C2601: 'SaveAs': Lokale Funktionsdefinitionen sind unzulässig
    c:\dokumente und einstellungen\admin\eigene dateien\visual studio 2008\projects\sarp_pawn\sarp_pawn\Form1.h(250) : error C3861: "SaveFile": Bezeichner wurde nicht gefunden.
    

    Mein Code:

    private: System::Void toolStripMenuItem2_Click(System::Object^  sender, System::EventArgs^  e) { //SAVE DIALOG
    		 //Speichern unter-Dialog
            void SaveAs() {
                SaveFileDialog ^saveFileDialog1 = gcnew SaveFileDialog();
    
                //Startverzeichnis vorgeben, danach immer das zuletzt
                 //angesteuerte Verzeichnis verwenden (Nicht die Vorgabe wiederherstellen
                 saveFileDialog1->InitialDirectory = ".";
                 saveFileDialog1->RestoreDirectory = false;
    
                 //Filer für Dateien mit den Extension .txt und .*
                 saveFileDialog1->Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
    
                 //Ersten Filter als Vorgabe wählen
                 saveFileDialog1->FilterIndex = 1;
    
                 if (saveFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK)
                 {
                     SaveFile(saveFileDialog1->FileName);
    
                 }
    
            }
    		 }
    


  • Du definierst ja auch eine Funktion innerhalb einer Funktion...

    Definier die Funktion SaveAs im Form-Code und ruf sie dann in der Funktion toolStripMenuItem2_Click nur auf.

    Wenn Du die Funktionalität nur dort brauchst, ist die Funktion eh überflüssig...

    SaveFile ist dann die Funktion, mit der Du tatsächlich speicherst...

    Kauf Dir mal eines der vielen Einführungsbücher in VC++2008 da sind viele Codebeispiele. Ausserdem wird allgemein erläutert, wie in VC++ programmiert wird (Stichwort Objektorientierung etc.)

    Gruß Solick



  • Achso. 🙄

    Void() { und } hab ich jetzt in der Funktion vom Button entfernt. Jetzt komm nur noch das.

    c:\dokumente und einstellungen\admin\eigene dateien\visual studio 2008\projects\sarp_pawn\sarp_pawn\Form1.h(331) : error C3861: "SaveFile": Bezeichner wurde nicht gefunden.
    


  • ganz einfach. Weil SaveFile eine Funktion ist, die dann tatsächlich Inhalte in die Datei Speichert...

    Die muss natürlich noch erstellt werden...

    Ich denke es macht wirklich Sinn, dass Du Dich mit den Grundlagen beschäftigst...



  • Ja stimmt. Ich dachte PAWN ist fast genauso, ist aber doch ein wenig anders. Aber das wird dann bestimmt nicht so schwer da ich PHP und PAWN gut beherrsche.

    Kann mir jemand ein paar Tutorials / online Bücher empfehlen? 🙂



  • SaveFile ist eine Funktion vom RichTextBox, die kannst Du nicht so ohne Sinn in den Raum klatschen...

    Hier der Code...

    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) 
    			 {
    				//Speichern unter-Dialog 
    				//void SaveAs() <-<-<-WAS SOLL DAS?
    				//{
    					SaveFileDialog ^saveFileDialog1 = gcnew SaveFileDialog(); 
    
    					//Startverzeichnis vorgeben, danach immer das zuletzt 
    					 //angesteuerte Verzeichnis verwenden (Nicht die Vorgabe wiederherstellen 
    					 saveFileDialog1->InitialDirectory = "."; 
    					 saveFileDialog1->RestoreDirectory = false; 
    
    					 //Filer für Dateien mit den Extension .txt und .* 
    					 saveFileDialog1->Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"; 
    
    					 //Ersten Filter als Vorgabe wählen
    					 saveFileDialog1->FilterIndex = 1; 
    
    					 if (saveFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK) 
    					 { 
                             //SaveFile, ein Member von RichTextBox-Control, nix für mitten in Raum klatschen:
    						 richTextBox1->SaveFile(saveFileDialog1->FileName); 
    
    					 } 
    				//}
    			 }
    

    Hier noch ein OpenBook in C#, für C++/CLI wirst Du ganz, ganz, ganz schwer gute Bücher finden, aber C# läßt sich (nicht immer ganz leicht) in C++/CLI umschreiben...

    http://openbook.galileocomputing.de/visual_csharp/

    Gruß, Heiner



  • Sorry, aber da muss ich widersprechen...

    Ich hatte in meinem Beispiel eine Funktion SaveFile, in der dann (in diesem Fall der Inhalt einer Textbox) in das File geschrieben wird.

    Die Funktion sieht so aus:

    //Speichern
    		void SaveFile(String ^datnam) {
    			//Speichert die Datei
    			 try {
    
    				StreamWriter ^sw = gcnew StreamWriter(datnam);
    
    				sw->Write(textBox1->Text);
    				sw->Close();
    				}
    			 catch (IOException ^ex) 
    			 {
    				 MessageBox::Show("Datei konnte nicht gespeichert werden.","Fehler");
    			 }
    			 finally
    			 {
    
    			 }
    
    		}
    

    Da ist nix einfach hingeklatscht... ich wollte nur nich den kompletten Code vorschreiben...


Anmelden zum Antworten