ERLEDIGT
NEIN
NEIN
ANTWORTEN
1
1
ZUGRIFFE
479
479
EMPFEHLEN
-
28.05.08 11:18 #1
- Registriert seit
- Apr 2005
- Beiträge
- 1
Hallo meine Lieben,
Ich steht im Moment vor folgendem Problem: Ich habe vor mir eine SDI MFC-Anwendung die mit den Framework funktionen OnOpenDocument und Serialize die Anwendungsdaten wunderbar ein- und ausliest.
Jetzt zum Problem: Zusätzlich zu meinem Datentyp (*.rhi) den ich nun also definiert habe, sollte es auch möglich sein einen weiteren Datentyp (ordinäre *.txt) einlesen zu können (Beide Dateien beinhalten gleiche Information, haben allerdings (logischerweise) ein anderes Dateiformat).
Meine Frage nun: Ein Arbeitskollege hat mir gesagt, es gäbe einen Weg die Funktionen zu überladen (OnOpenDocument und Serialize) um so das ganze im Framework zu belassen (vor allem wg. "Datei -> Öffnen Dialog" u.ä.) -- was muss in den überladenen Funktionen stehen um die Dateitypen zu unterscheiden?
Ich google jetzt schon rund 'ne Stunde um was passendes zu finden, aber ausser allgemeinen Tutorials rund ums serialisieren finde ich leider nichts passendes -- ich vermute ich suche nach den falschen Keywords
.
Über Lösungsansätze, Stichwörter (nach was ich suchen könnte um eine Lösung zu erhalten) und weitere Hilfe wäre ich sehr dankbar
Herzlichen Dank!
-
28.05.08 12:30 #2
- Registriert seit
- Jun 2005
- Ort
- Bad Arolsen (Hessen)
- Beiträge
- 556
Hallo,
ich mache es so, dass ich in der Funktion zum Einlesen (oder auch speichern) der Datei ein CArchive erzeuge und in CDokument eine zweite Serialize-Funkrton definiere.
Hier ein Auszug. Serialize1 ist die Funktion im Dokument:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
CFile f; int error; char buf[512]; CMyFileDialog m_File(TRUE, "", NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "Patientendateien (*.pat)|*.pat| Alle Dateien|*.*||"); if(m_File.DoModal()==IDOK) { CString m_strFilename = m_File.GetPathName(); if( !f.Open( m_strFilename, CFile::modeRead ) ) { #ifdef _DEBUG afxDump << "Unable to open file" << "\n"; exit( 1 ); #endif } CArchive ar( &f, CArchive::load, 512, buf ); error=pDoc->Serialize1(ar); if(error==1) MessageBox("Falscher Dateityp","Meldung",MB_OK|MB_ICONINFORMATION); else if(error==2) MessageBox("Patient existiert schon","Meldung",MB_OK|MB_ICONINFORMATION); ar.Close(); f.Close();
Vielleicht hilft dir das ja.
Mfg
langer
Ähnliche Themen
-
programm, für mehrere zwischenablagen?
Von Transmitter im Forum Office-AnwendungenAntworten: 8Letzter Beitrag: 20.02.09, 14:21 -
Mehrere Benutzer über LAN im Programm
Von Mister master im Forum Visual Basic 6.0Antworten: 4Letzter Beitrag: 29.05.07, 14:46 -
[Flex] mehrere Scanner in ein Programm linken
Von mueslirocker im Forum C/C++Antworten: 2Letzter Beitrag: 13.07.05, 17:01 -
mehrere source-files für ein Programm
Von Hela Wann im Forum CGI, Perl, Python, Ruby, Power ShellAntworten: 2Letzter Beitrag: 30.11.04, 08:13 -
Mehrere Karten-Teile per Programm nahtlos zusammenfügen
Von mingelburns im Forum PhotoshopAntworten: 7Letzter Beitrag: 06.06.04, 21:21





Zitieren
Login






