CXI-Basis-Programmierreferenz / Version 2 / Datenspeicherung / CxiNode / Typübergreifende Funktionen /
CxiString CxiNode :: EnumVarName (int pindex) const
char * CxiNode :: EnumVarName (int pindex, char *pbuffer, CxiShort psize) const
char * cxiEnumVarName (CxiHandle self, int pindex, char *pbuffer, CxiShort psize)
Liest den Namen einer Variablen
pindex:
Indexnummer der Variablen, 1 bis QueryCount()
(Jede Änderung des Blocks kann zu Verschiebungen der Indexnummern führen!)
pbuffer:
Puffer für den Namen der Variablen
psize:
Länge des Puffers, wird nicht verändert (Die maximale Länge eines Namens ist 255, daher ist ein Puffer der Länge 256 Byte immer ausreichend)
return:
bei Erfolg pbuffer, bei Fehler oder zu großer Indexnummer NULL bzw. CxiString("")
Bei Variablen mit einer Nummer anstelle eines Namens wird die fünfstellige Nummer in der Form "#00000" zurückgeliefert. Diese Variablennummer hat nichts mit der Indexnummer pindex zu tun!
Portabilität:
Diese Funktion ist in allen unterstützten Systemen verfügbar. Die alte Funktion cxiEnumVarNameDirect wird ab Version 2.06 nicht mehr unterstützt, stattdessen sollte die CxiString-Variante von EnumVarName verwendet werden.
Siehe auch:
IsEmpty
QueryCount
Beispiel:
#include "cxib.h"
// Die folgende Funktion listet
// die Namen aller Variablen in cxi auf
void listnames (const CxiNode& cxi)
{
CxiLong i, anz = cxi.QueryCount();
for (i=1; i<=anz; i++)
{
char buffer [256];
if (cxi.EnumVarName (i, buffer, sizeof buffer) == 0)
break; // Das ist eigentlich ein zu behandelnder Fehler
printf ("%d. Variable heißt %s\n", i, buffer);
}
}