MFC TextDatei laden / verändern / anzeigen

WinDWalker

Mitglied
Hallo zusammen ;) ,

ich habe ein Problem mit der MFC / SDI.
Ich möchte eine Textdatei Laden den Inhalt ändern und dann anzeigen!
Um die Trennung von Doc und View einzuhalten habe ich in der Doc.h eine Variable CString cstrAusgabe global deklariert die den geladenen String beinhalten soll.
Die ganze Altion wird ausgelöst durch das anklicken des MenueEintrages File / Laden !

Die Funktionen OnInitialUpdate() und onLaden() sehen so aus:

Code:
void CSDI_Weg_durchs_LabyrinthView::OnInitialUpdate()
{		
 		CSDI_Weg_durchs_LabyrinthDoc *pDoc = GetDocument ();
	
		CRichEditCtrl& rCtrl = GetRichEditCtrl(); // Pointer auf das RichEditControl erstellen um dessen Funktionen zu nutzen
		CHARFORMAT cfm;							  // Struktur die die Aktionen der Selektion enthält
		CFont myFont;
		myFont.CreatePointFont(150,"Terminal",NULL); // Font erstellen
  	  	rCtrl.SetFont(&myFont);

		rCtrl.ReplaceSel(pDoc->cstrAusgabe);

		rCtrl.SetSel(0,482);		
		cfm.cbSize		= sizeof(CHARFORMAT);		// Funktionen
		cfm.dwMask		= CFM_BOLD;					// des RichEditCONTROLS zur
		cfm.dwEffects	= CFM_BOLD;					// formatierten Darstellung benutzen
  		rCtrl.SetSelectionCharFormat (cfm);			// Aktionen der Selektion ausführen

		rCtrl.SetSel (0,0);
		pDoc->SetModifiedFlag (FALSE);
 	// 	pDoc->UpdateAllViews (NULL);

		// SetMargins(CRect(720, 720, 720, 720));		
}

Code:
void CSDI_Weg_durchs_LabyrinthView::OnLaden() 
{
	
	 	char strFilter[] = { "txt Files (*.txt)|*.txt|All Files (*.*)|*.*||" }; // Filterstring für den Windows Dialog Datei - Öffnen 
	 	CFileDialog m_File(TRUE, ".txt", NULL, 0, strFilter);	// Objekt der Klasse CFileDialog erstellen 
	 	CFile    file;                                          // Objekt der Klasse CFile erstellen 
	 	CSDI_Weg_durchs_LabyrinthDoc *pDoc = GetDocument (); 
	 	
	 	
	 	TCHAR *str = NULL; 
	 	CString m_strDateiname; 
	 	
 	 	if(m_File.DoModal()==IDOK)                            // Dialogfeld öffnen und Ergebnis auffangen 
 	 	{    
	 		m_strDateiname = m_File.GetFileName();            // Gewählten Dateinamen ermitteln 
	 		
	 		file.Open(m_File.GetFileName(), file.modeRead);	  // Ausgewählte Datei öffnen 
	 		str = new TCHAR[(file.GetLength())+1];            // TChar Array auf Heap schieben damit es dynamisch wird 
	 		str[(file.GetLength())] = '\0';                   // TChar Array mit 0 terminieren 
	 		file.Read(str, file.GetLength());				  // File lesen und Array str mit Werten füllen 
	 		
	 		pDoc->cstrAusgabe = str; 
	 		pDoc->cstrAusgabe.SetAt (1,'g');				  // Werte von TChar Array in CString "cstrAusgabe" schreiben    
	 		file.Close();                                     // File wieder schließen 
	 		delete[]str; 
	    }    
	 	
	// 	pDoc->SetModifiedFlag ();
 		pDoc->UpdateAllViews (NULL);
 		
 }


Das laden scheint zu funktionieren da der Dialog angezeigt wird, ich die Datei auswählen kann und es keine Fehlermeldung angezeigt wird !

Aber auf dem SDI wird nichts ausgegeben !!
Ich versuchs schon seit Tagen, hab gegoogled und auch schon gepostet aber nichts hat geholfen :rolleyes::confused::confused::confused:

Bitte helft mir, ich weis echt nicht weiter !

hoffnungsvoll
Gruß
CrocBuck

P.S.: Die Datei hab ich angehängt
 

Anhänge

Zurück