ich schreibe gerade an einer script sprache.
darunter ist auch folgendes construct:
myArray = new Array(4,2,3)
myArray[1][2][3] = 42
nun bin ich am überlegen, wie man mit QT an die einzelnen Dimensionen ran kommt.
dazu ein kleiner code:
Code: Alles auswählen
QList<int> dim;
QListIterator<int> iter(dim);
while (iter.hasNext())
{
cout << iter.next() << " | ";
}nur wie kann ich wie setvalue(1,2,3, 42);
bewerkstelligen?
also soll dynamisch sein, damit man N dimensionen programmieren kann.
ich habe folgenden code, komme aber nicht weiter:
Code: Alles auswählen
QList<TArrayType> es;
extern "C" void set_array_value(char *n, double val, int num, ...)
{
es << TArrayType(QString(n),1,val,"Hello");
bool found = false;
int i,j,k;
for (i = 0; i < es.count(); i++)
{
if (es.at(j).name == ArrayList.at(i).name)
{
va_list ptr;
int s, m, d;
QList<int> dim;
va_start(ptr,num);
for (m = num; m >= 1; m--)
{
k = va_arg(ptr,int);
s = va_arg(ptr,int);
dim << k;
}
va_end(ptr);
if (dim.count() < ArrayList.at(i).dimension.count())
throw ArrayException;
QListIterator<int> iter(dim);
while (iter.hasNext())
{
cout << iter.next() << " | ";
}
cout
<< "Name: " << ArrayList.at(i).name.toStdString() << endl
<< "Size: " << num << endl
<< "Type: " << es.at(j).type << endl
<< "Valu: " << es.at(j).value << endl
<< "Text: " << es.at(j).text.toStdString()
<< endl;
found = true;
break;
}
}
}