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:
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![Roll eyes :rolleyes: :rolleyes:](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f644.png)
![Confused :confused: :confused:](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f615.png)
![Confused :confused: :confused:](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f615.png)
![Confused :confused: :confused:](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f615.png)
Bitte helft mir, ich weis echt nicht weiter !
hoffnungsvoll
Gruß
CrocBuck
P.S.: Die Datei hab ich angehängt
![Wink ;) ;)](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f609.png)
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
![Roll eyes :rolleyes: :rolleyes:](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f644.png)
![Confused :confused: :confused:](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f615.png)
![Confused :confused: :confused:](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f615.png)
![Confused :confused: :confused:](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f615.png)
Bitte helft mir, ich weis echt nicht weiter !
hoffnungsvoll
Gruß
CrocBuck
P.S.: Die Datei hab ich angehängt