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);