Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » auf Fehler bei Cdocument::serialize reagieren???

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
19.02.2004, 16:08 Uhr
~theolmue
Gast


Hallo,
ich benutze die Methode Serialize um XML-Dokumente zu laden und zu validieren. Dabei kann es natürlich sein, dass eine Datei nicht gültig ist, weil sie nicht dem XML-Schema entspricht. Nun kann ich den Ladevorgang natürlich abbrechen, aber wie teile ich das dem vom Assistenten generierten SDI-Rahmen mit? Der glaubt nämlich weiterhin, dass die Datei ordnungsgemäß geladen ist und zeigt z.B. den Namen der Datei in der Titelleiste an. Außerdem kann ich keinen 2. Versuch starten die Datei zu laden (etwa nachdem ich sie von Hand koriigiert habe).
Wie kann ich also den Serialize-Vorgang abbrechen?
Ich hoffe dazu gibt es eine komfortablere Lösung, als zu meinem Schwierigkeiten mit dem Rahmen der Combobox.
Gruß
theolmue
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
23.02.2004, 21:13 Uhr
~theolmue
Gast


Hallo,
ich bin inzwischen auf den Trichter gekommen, wie das Problem zu lösen ist: Man verwende nicht die Methode serialize, sondern die Methoden OnOpenDocument und OnSaveDocument. Diese werden zwar beim Erstellen der Klasse nicht mit angelegt, können aber mit dem Klassenassistenten nachträglich eingefügt werden.
In CDokument sind diese Methoden so implementiert, dass Sie Serialize aufrufen. Wenn man diese Methoden jedoch überschreibt, kann man den automatisch generierten Aufruf der entsprechenden Methoden aus CDokument löschen und stattdessen eigenen Code einfügen. Das einzige was nicht mehr zur Verfügung steht ist das CArchiv-Objekt aus Serialize, aber dass kann man sich zur Not ja selbst erstellen. Dafür aber kann man per Return ein true oder false zurückgeben - je nachdem, ob die Methode erfolgreich oder eben nicht erfolgreich ausgeführt wurde.
Netter Weise steht alles in der MSDN, nur finden tut man es nicht so leicht, wennman nicht genau weiß, wo man suchen muss. ;-)
Ich hoffe, dass diese Info noch anderen hilft, denn offenbar kennt kaum jemand die Lösung dafür.
Gruß
theolmue
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
24.02.2004, 10:18 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Man muss nicht zwingend die MSDN durchwühlen:
http://download.pearsoned.de/leseecke/VCPLUS6_21Tg/data/kap13.htm
Ist auch ein gutes Nachschlagewerk

mfg
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: