Problem beim Auslesen der ersten Spalte aller Einträge im ListCtrl...
-
Das Problem ist, dass in CString n nix drin steht ! Die MessageBox ist leer ...
@Windalf
Auch ohne "=" funtzt es nicht ...
-
aber es macht es schon x mal? sprich sooft wie was drinnen steht? z.b. 20 mal
-
Servus,
wenn der Code dort oben eine Kopie deines Codes ist, dann sollte man dich vierteilen, steinigen und auspeitschen...
*prügel*for (int i = 0; i <= pList->GetItemCount()-1; i++) //; { CString n = pList->GetItemText(i,0); }Nimm das Semikolon ";" hinter dem Kopf der For-Schleife weg und setze noch ein GetItemCount()-1. dann stimmts

*winke*
Hellsgore
-
Danke Hellsgore, so funtzt es ... Aber kannst du mir erklären wozu diese -1 dienen soll ? denn ohne der funtzt es auch...
-
Servus,
Achtung 
Es folgt eine Erklärung. Bei Risiken oder Nebenwirkungen, stecken Sie bitte Ihren Finger ins Ohr und laufen Sie singend auf die Straße.
Bsp.:
Count = 4;
for (int i = 0; i <= Count()-1; i++)
for (int i = 0; i < Count(); i++)Hier zählst du von Element 0 - 3 entsprechen dem Index des ListCtrl
Count = 4
for (int i = 0; i <= Count(); i++)Hier zählst du von 0 - 4 = 5 Schritte aber du hast nur 4 Elemente. Dann kann es passieren das er die bei dem letzten Schritt, in dem Fall i = 4, höllisch abraucht.
Ich hoffe ich konnte dir das einigermaßen erklären

*winke*
Hellsgore
-
bin mir jetzt nicht so sicher
z.b. es sind 20 zeilen
getcount liefert 20int i geht von 0...19 ( also mal mal )
du schreibst <= ( also inclusive 20 )
jetzt greifst du beim letzten mal von i ( i = 20 )CString n = pList->GetItemText(20,0); // duerfte nicht gehen da das letze 19 ist
also musst du entweder
nicht <= machen sondern nur < oder halt die -1
so wie du es machst ist es falsch.
-
Hab verstanden Hellsgore !Super Erklärung!

Thx
-
Da gibt es noch ein kleines Prob. Wenn ich jetzt CString n in eine Datei speichern möchte, dann wird nur der erste Eintrag vom List Control gespeichert und nicht alle ...
for (int i = 0; i <= pList->GetItemCount()-1; i++) { CStdioFile OutFile; OutFile.Open("C:\\List.dat",CFile::modeCreate | CFile::modeWrite); CString n = pList->GetItemText(i,0); OutFile.WriteString(n); OutFile.Close(); }Was mache ich falsch...
-
bitte schreib das mode create und so vor der for schleife da du die
datei oeffnest und dann reinschreibst
im nechsten schritt oeffnest wieder und loescht sozusagen die datei vorherich habs sogemacht ungefaehr da ich nciht den ganzen code poste, da ichs bissle anders mache
int max = m_testsuite.GetItemCount(); CStdioFile fDatei(getname, CFile::modeWrite); CString line; line = "\n"; unsigned int row = 0; while(max != 0) { max--; } am schluss dann closen fDatei.Close();
-
Danke so klappt es super !
