Ein neues Document öffnen und mit Text beschreiben
-
Das Dokument IST dein geöffnetes File
Das heißt, du müsstest die Texte als Member deiner Doc-Klasse unterbringen und in der Serialize()-Methode auf Platte schreiben (die wird aufgerufen, wenn das Dokument gespeichert wird).
-
Aber genau das will ich ja nicht erreichen. Ich möchte ja die Datei nicht speichern, sondern lediglich als eine Art Zwischenspeicher behandeln. GEspeichert wird diese Datei möglicherweise gar nicht. Und ich kann ja auch meherere geöffnete Files haben. Ist ja schließlich MDI. Oder bin ich jetzt ganz falsch?
-
Was willst du denn nun? Willst du die Daten auf Platte speichern oder nicht? Entscheide dich bitte.
(und versuch bei der Gelegenheit, verständlich zu erklären, was du eigentlich beabsichtigst)
-
Ich hab ein Programm. Diesem Programm gebe ich eine Quelle (1.File). Aus dieser Quelle wird eine weitere Datei erzeugt (2.File). fertig ist das Programm.
Jetzt kann es abe sein das Möglicherweise nicht alle Informationen(Text) durch das Programm automatisch in das 2. File geschrieben worden sind. Diese muss der Benutzer, aber nur wenn er das möchte, von Hand einfügen. Damit das ein bischen schneller geht, möchte ich ein Teil dieser Informationen dem Benutzer bereitstellen. In Form von einem 3. File. Dieses möchte ich aber nicht abspeichern. Ich möchte es nur Anzeigen, und dort meinen Text anzeigen lassen. Diesen Text KANN der Benutzer, wenn er möchte, in das 2.File hineinkopieren und dort dann auch ergänzen. Wenn er denn Text kopiert und ergänzt hat, verliert das 3.File seine Bedeutung. Jetzt Kann der Benutzer selbst entscheiden, ob er es schließt und somit lediglich als "Zwischenspeicher" genutzt hat, oder ob er es auf Platte speichern möchte(aus welchem Grund auch immer).
Mehr möcht ich gar nicht realisieren.
Danke.
mfg
Alex
-
Also das klingt auf jeden Fall nicht nach einem typischen Doc-View-Szenario (in der klassischen Anwendung hast du nur ein File, das geöffnet, verändert und schließlich wieder gespeichert wird).
-
Das heißt was ichda realisieren möchte ist nicht möglich?
-
Im übrigen wozu brauch ich eine MDI Anwendung wenn ich immer nur ein File öffne?
-
Klar ist es möglich, aber dazu mußt du etwas über den Tellerrand hinausschauen (und z.B. direkt mit fstream's oder CFile's hantieren).
m übrigen wozu brauch ich eine MDI Anwendung wenn ich immer nur ein File öffne?
Das frage ich mich auch
wenn du nur ein File öffnest, reicht eine SDI-Anwendung völlig aus.
-
Ok. Soweit war mir das schon klar, aber ich einfach nicht wie ich den Handle auf das neugeöffnete File bekomme?!
-
Alex171184 schrieb:
Ok. Soweit war mir das schon klar, aber ich einfach nicht wie ich den Handle auf das neugeöffnete File bekomme?!
OK, dann ein Ansatz: Du verwendest NICHT die OnNewDocument() und Co., um dein "drittes File" zu öffnen. Stattdessen kannst du dir den Dateinamen der Datei besorgen (entweder fest vorgegeben oder über einen CFileDialog) und öffnest anschließend ein CFile mit diesem Namen, das du dir an zentraler Stelle in der Anwendung zwischenlagerst.
-
Also praktisch folgendermaßen:
Zwischenspeicher.Open("hallo.spf",CFile::modeCreate | CFile::modeWrite);
Zwischenspeicher.Write("wunderbar",7);
Zwischenspeicher.GetFilePath();
Zwischenspeicher.Close();OpenDocumentFile("hallo.spf");
-
Sorry Zwischenspeicher ist vom Typ CFile.
Jetzt wird aber Trotzdem auf Platte gespeichert?
