GetAt und SetAt Error

Sturmkoenig

Grünschnabel
Hallo Leute,
Kann mir jmd bitte verraten, warum dieser kleine Code nicht funktioniert?
Das ganze soll praktisch einen Teil des einen CString m_sOben in den anderen schreiben... nur bekomme ich dauernd eine Fehlermeldung sobald die Schleife durchläuft.
Danke im vorraus :)

Code:
void CTestCstringsDlg::OnGo() 
{
	// TODO: Add your control notification handler code here

	UpdateData(true);

	int laenge = m_iBis - m_iVon;
	for(int i=0; i<laenge; i++)
	m_sUnten.SetAt(i,m_sOben.GetAt(i+m_iVon));

	UpdateData(false);
	
}
 
Ist i denn immer kleiner als die Länge des Zielstrings? SetAt alloziert nämlich keinen Speicher, sondern überschreibt nur vorhandene Zeichen. Vielleicht musst du den Zielstring vorher entsprechend gross machen. Oder mach es so:
Code:
m_sUnten = "";
for(int i=0; i<laenge; i++)
  m_sUnten += m_sOben.GetAt(i+m_iVon);

Wenn das nicht hilft, poste doch bitte die Fehlermeldung.

---

Übrigens, ist länge überhaupt positiv ? Ich meine, prüfst du vorher irgendwo, ob die Werte gültig sind? Hat zwar nix mit deinem Problem zu tun, fiel mir aber gerade noch ein, dass man da vielleicht testen sollte.
 
Zuletzt bearbeitet:
Zurück