textdatei auslesen --> CString
-
hallo,
hat jemand ein kleines stück programmcode fuer mich ? ich möchte eine testdatei auslesen und direkt in einen CString speichern. wie mache is das am besten ?
danke
-
Forumsuche: CStdioFile
-
also ich habe es jetzt so :
CStdioFile File; if (File.Open(_T("C:\\s51_assem_gen.init"), CFile::modeRead)) { CString strText, strResult; while(File.ReadString(strText)) { strResult = strText.Mid(15, strText.GetLength()); MessageBox(strResult); } File.Close(); }aber es passiert nicht. ich habe den code in der OnInitDialog drin. soll beim starten laufen. wo ist mein fehler ?
danke
-
Geht er in die if rein? Also kann die Datei geöffnet werden?
-
ok hatte die dateiendung nicht richtig benannt, jetzt geht er in den if pfad rein, aber bei dieser zeile :
strResult = strText.Mid(15, strText.GetLength());gibt er eine fehlermeldung aus:
Debug Assertion Failed!
aber was er da genau meckert weiss ich nicht.
Prgramm: der pfad halt
File: strex.cpp
Line 332
-
Im Artikelforum findest du eine Erklärung von mir, wie man den Debugger nutzt.
Da ist auch ASSERT drin erklärt.Schau doch mal, ob du findest, warum er meckert - andererseits kannst du so schon mehr Infos rausfinden, die mir beim Fehlersuchen in deinem Code helfen.
Erste Idee: Indexfehler?
-
ok.. das mit dem standard debuggen kannte ich schon, jedoch nicht mit dem ASSERT. also ich werde beim drücken auf wiederholen in diese line geworfen :
also hier schmeisst er mich raus :
strResult = strText.Mid(20, strText.GetLength());und ich komme hier hin :
ASSERT(nFirst + nCount <= GetData()->nDataLength);
-
hoffe das hilft irgednwie weiter... es liegt anscheind an der ein-ausgabe.. aber ich kann daraus nichts deuten

-
Mit
strText.Mid(20, strText.GetLength())
willst du von Stelle 20 bis zum Ende den Substring auslesen. Vermutzlich steht in strText ein String der kürzer als 20 Zeichen ist.
-
jaaaa !!!
sehr gut. danke dir. habe es durch 0 ersetzt und es funktioniert einwandfrei. vielen dank !!!
-
maddok schrieb:
ASSERT(nFirst + nCount <= GetData()->nDataLength);Mit etwas Englisch kann man das so übersetzen: Anfang+Länge dürfen nicht größer sein als der String selbst.
(Den Rest kennt du jetzt ja.)
