dynamisch Variablen generieren in C
Verfasst: Donnerstag 3. November 2011, 12:21
Hallo,
ich will in einer Schleife eine erst zur Laufzeit bekannte Anzahl von Listen als PyObject anlegen und deren Elementen später Werte zuweisen.
wie mache ich das?
statisch sieht es so aus:
ich will in einer Schleife eine erst zur Laufzeit bekannte Anzahl von Listen als PyObject anlegen und deren Elementen später Werte zuweisen.
wie mache ich das?
statisch sieht es so aus:
Code: Alles auswählen
int i;
char title[100];
PCLCnt = 1;
TChCnt = 30;
PyGraphList = PyList_New((int)2*PCLCnt);
PyObject *PyGraph1 = PyDict_New();
PyObject *PyAbscissaList1 = PyList_New((int)TChCnt);
PyObject *PyOrdinateList1 = PyList_New((int)TChCnt);
for (i = 0; i < TChCnt; i++) {
PyNumber = PyInt_FromLong((long)i);
PyList_SET_ITEM(PyAbscissaList1, i, PyNumber);
PyNumber = PyFloat_FromDouble((double)i);
PyList_SET_ITEM(PyOrdinateList1, i, PyNumber);
}
sprintf(title, "Title_1, PCL: %ld", (long)PCLCnt);
PyDict_SetItemString(PyGraph1, "title", PyString_FromString("hallo_1"));
PyDict_SetItemString(PyGraph1, "legend", PyString_FromString("-+-+-"));
PyDict_SetItemString(PyGraph1, "abscissa", PyAbscissaList1);
PyDict_SetItemString(PyGraph1, "abscissaUnits", PyString_FromString("TxCh"));
PyDict_SetItemString(PyGraph1, "ordinate", PyOrdinateList1);
PyDict_SetItemString(PyGraph1, "ordinateUnits", PyString_FromString("P[dBm]"));
PyList_SetItem(PyGraphList, 0, PyGraph1);
PyObject *PyGraph2 = PyDict_New();
PyObject *PyAbscissaList2 = PyList_New((int)TChCnt);
PyObject *PyOrdinateList2 = PyList_New((int)TChCnt);
int OffSet = 30;
for (i = OffSet; i < OffSet + TChCnt; i++) {
PyNumber = PyInt_FromLong((long)i);
PyList_SET_ITEM(PyAbscissaList2, i - OffSet, PyNumber);
PyNumber = PyFloat_FromDouble((double)i);
PyList_SET_ITEM(PyOrdinateList2, i - OffSet, PyNumber);
}
sprintf(title, "Title_2, PCL: %ld", (long)PCLCnt);
PyDict_SetItemString(PyGraph2, "title", PyString_FromString("hallo_2"));
PyDict_SetItemString(PyGraph2, "legend", PyString_FromString("-+-+-"));
PyDict_SetItemString(PyGraph2, "abscissa", PyAbscissaList2);
PyDict_SetItemString(PyGraph2, "abscissaUnits", PyString_FromString("TxCh"));
PyDict_SetItemString(PyGraph2, "ordinate", PyOrdinateList2);
PyDict_SetItemString(PyGraph2, "ordinateUnits", PyString_FromString("P[dBm]"));
PyList_SetItem(PyGraphList, 1, PyGraph2);