Arrays nutzen?
-
Hallo,
ich muss in meinem neuen Beispielprojekt (bin in der Lernphase) nun
häufiger ini-Werte auslesen.Bislang habe ich den Code immer neu hinkopiert, das geht aber sicher auch einfacher.
Ich bin mir nur nicht sicher wie.Das würde ich immer wieder kopieren mit neuen Variablen:
char *pBuf = new char[300]; CString returnstring; GetPrivateProfileString("Sektion1","1","error",pBuf,300,"c:\\log.ini"); returnstring.Format("%s",pBuf); delete []pBuf;Ich dachte an diese Arrays, aber würde es denn so überhaupt Sinn machen?
char *pBuf = new char[300]; CString returnstring[20]; CString wertzahl[20]; for(int x=0;x<=20;x++) { GetPrivateProfileString("Sektion1",wertzahl[x],"error",pBuf,300,"c:\\log.ini"); returnstring[x].Format("%s",pBuf); } delete []pBuf; CString xyz; xyz=returnstring[10]; MessageBox(xyz,"Wert aus Array");
-
Erstmal: Je nach Anwendung kann das durchaus Sinn machen, allerdings solltest du nicht über das Array-Ende hinausschreiben (oder gleich dynamisch erweiterbare Container verwenden).
Zweitens: Das Gebastel mit dem char* sieht ja übel aus - hol dir doch direkt den richtigen Buffer per GetBuffer():
CString returnstring; GetPrivateProfileString("Sektion1","1","error",returnstring.GetBuffer(300),300,"c:\\log.ini"); returnstring.ReleaseBuffer();
-
Hallo CStoll,
danke für deinen Tipp.
Sag mal wie mache ich das richtig, damit ich den 2ten Parameter variabel
bzw. für ein Array anlege?GetPrivateProfileString("Sektion1","Wert1","error",pBuf,300,"c:\\log.ini");Nun soll statt Wert1 laufend hochgezählt werden ("Wert2","Wert3" etc.).
Ich fürchte so einfach wie ich es mir vorstellte ist es dann doch nicht.
-
vom prinzip her etwa so:
for (int i=0; i<10; i++) { CString wert; wert.Format ("Wert%d", i); GetPrivateProfileString("Sektion1",wert,"error",pBuf,300,"c:\\log.ini"); }zählt von 'Wert0' bis 'Wert9'
