Infodialog mit Text aus *.txt bestücken?
-
Haudi,
ich stehe vor der Frage, wie ich am besten ein Editcontrol mit Text befüllen
kann. Ich dachte erst, dass ich einen CString nehme und alles reinschreibe.
Aber da der Text von Version zu Version aktuell gehalten bzw. gepflegt werden
muss, wäre es mir fast lieber alles in eine *.txt zu schreiben.Das wäre auch nicht das Ding, wenn ich nur wüsste wie ich die *.txt so ein-
binden kann, dass ich sie nicht erst auf Festplatte packen und dann von da
auslesen muss. Es soll direkt ins Editcontrol geschrieben werden.Meine *.exe ist von jedem Ort aus aufrufbar und daher wäre es schlecht da noch
überall eine Textdatei zu hinterlassen....Optional bleibt mir noch das Schreiben
ins Tempverzeichnis, was ich aber auch gerne vermeiden möchte.
-
bool LoadStringFromResource(CStringA &str, LPCTSTR pszName, LPCTSTR pszType, HINSTANCE hInst) { ASSERT(pszName!=NULL && pszType!=NULL); // Clear string str.Empty(); // Search for the Resource if (!hInst) hInst = AfxFindResourceHandle(pszName, pszType); if (!hInst) { ASSERT(FALSE); TRACE_NAME_AND_TYPE(_T(__FUNCTION__) _T(": AfxFindResourceHandle failed"),pszName,pszType); return false; } HRSRC hRes = ::FindResource(hInst, pszName, pszType); if (!hRes) { ASSERT(FALSE); TRACE_NAME_AND_TYPE(_T(__FUNCTION__) _T(": FindResource failed"),pszName,pszType); return false; } HGLOBAL hGlobal = ::LoadResource(hInst, hRes); if (!hGlobal) { ASSERT(FALSE); TRACE_NAME_AND_TYPE(_T(__FUNCTION__) _T(": LoadResource failed"),pszName,pszType); return false; } PCSTR pStr = (PCSTR)LockResource(hGlobal); if (!pStr) { ASSERT(FALSE); TRACE_NAME_AND_TYPE(_T(__FUNCTION__) _T(": LockResource failed"),pszName,pszType); return false; } // Copy data int nSize= (int)SizeofResource(hInst, hRes); str = CString(pStr,nSize); // succeeded return true; }