Variablennamen inkrementieren
-
Ich wollte mal Fragen, ob man Variablennamen auch inkrementieren kann in einer Schlaufe, also anstatt:
CString cs_nr1 = m_auslese.GetAt(0);
CString cs_nr2 = m_auslese.GetAt(1);
CString cs_nr3 = m_auslese.GetAt(2);
CString cs_nr4 = m_auslese.GetAt(3);soetwas:
for(ix=0;ix<10;ix++)
{
CString cs_nr[ix+1] = m_auslese.GetAt(ix);
}Danke schon mal..
-
Hallo!
Ich würde meinen das macht keinen Sinn, wenn du so viele variablen mit dem gleichen namen und einer Zahl dahinter hast, nimm doch gleich ein Array.
Im allgemeinen macht man das so.Ich glaube! ein Variablenname muß dem compiler schon vorher bekannt sein und kann nicht zur Laufzeit angegeben werden.
Jemand anderer Meinung?

lg l00P
-
Hi
nö, vollkommen richtig

Grüße Rapha
-
Correctz geht schon ist aber schwachsinn.....!!!!!!! @ cuxer
-
DaDaywalker schrieb:
Correctz geht schon ist aber schwachsinn.....!!!!!!! @ cuxer
was geht schon?
auch wenn es so gehen würde wie in kleinen script sprachen ala actionscipt oder javascript, es ist nicht gerade sinnvoll. im gegenteil, diese methode birgt viel zu viele tücken.ausserdem geht das nicht und es gibt eine viel bessere und einfachere möglichkeit, die soweit ich das weiss auch etwas weniger speicher verbraucht.(fragt micht nicht welchen speicher ich meine. bin noch fleissig am paucken!)
1. geht nicht weil:
for(ix=0;ix<10;ix++) { CString /**was ist das???/cs_nr[ix+1] = m_auslese.GetAt(ix); }cs_nr? soll das ein array sein? nope, schon mal logisch ganz falsch. bin mir gar nicht sicher, aber ich meine variabelnamen können in compilersprachen gar nicht geparst werden, und genau das ist es, was du hier wünschst.
dafür haben compilersprachen andere vorteile:
CStringArray cs_nr; for(ix=0;ix<10;ix++) { cs_nr.Add(m_auslese.GetAt(ix)); } //zugriff über denn [] operator. also wie mit einem array. AfxMessageBox(cs_nr[1]);