000
26.02.2006, 01:08 Uhr
~Jasmin
Gast
|
Hallo!
Hoffe ihr könnt mir helfen (habe nix derartiges gefunden bisher). :/
Ich habe eine MFC mit SDI zur Anwendung. Ich will einfach eine Textdatei über diesen CFileDialog auswählen, laden und anschließend im Fenster des Views anzeigen lassen.
Zur Anzeige des textes aus der datei bin ich auch gekommen, doch gibt er mir diesen ohne Formatierung (zeilenumbruch z.b.) und mit lauter füllzeichen aus. Das ist eklig, ich brauche die textausgabe wie sie ursprünglich in der datei auch war.
C++: |
Meine OpenFile-Funktion in der DOC-Klasse:
// TODO: Fügen Sie hier Ihren Befehlsbehandlungscode ein. static char BASED_CODE szFilter[]="Text Dateien (*.txt)|*.txt||";
// Dialogfeld Datei öffnen (Bitmap) CFileDialog* ldText = new CFileDialog(TRUE, ".txt", m_pathText, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilter); CString selectPath = "C:\\Temp";
ldText->GetOFN().lpstrInitialDir = selectPath;
if (ldText->DoModal() == IDOK) { // Dateiname ermitteln m_pathText = ldText->GetPathName();
char str[1000]; CFile textFile( m_pathText, CFile::modeRead ); textFile.Read( str, sizeof(str)); m_strText = str; textFile.Close(); }
//m_strText = "Hallo Welt!!"; UpdateAllViews(NULL); delete ldText;
|
Anschließend habe ich eine selbst angelegte GetString-Methode um mir den inhalt der datei (m_strText) in der VIEW-Klasse ausgeben zu können:
C++: |
OnDraw Methode in der VIEW-Klasse:
CHuffTextDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if (!pDoc) return;
// TODO: Code zum Zeichnen der systemeigenen Daten hinzufügen pDC->TextOut(10,30,pDoc->GetString());
|
So bekomme ich zwar den Inhalt der Datei angezeigt, aber alles in einer Zeile ohne Zeilenumbruch und mit dämlichen Füllzeichen "IIIIIIIII" ... *alles in die tonne hau*
Wie kann ich das beheben? Gibt es andere Techniken um den Inhalt einer textdatei korrekt anzeigen zu lassen?
Es geht um eine Aufgabe für die Schule. |