CXI-Basis-Programmierreferenz / Version 2 / Datenspeicherung / CxiNode / Zeichenketten /
CxiError CxiNode :: SetLst (CxiName pname, const char **pval, CxiShort pcount = 0xFFFF)
CxiError CxiNode :: SetLst (CxiName pname)
CxiError cxiSetLst ...P (CxiHandle self, CxiName pname, const char **pval, CxiShort pcount)
pname:
Name der Variablen oder Pfadangabe und Variablenname
pval:
Liste von Zeigern auf Strings
pcount:
Anzahl der Zeiger in pval
return:
0 ok, sonst Fehler
Enthält pval einen NULL-Pointer, so wird die Liste als beendet betrachtet, auch wenn pcount noch nicht erreicht ist. Insbesondere bedeutet pcount == 0xFFFF, dass nur nach einem NULL-Pointer in pval gesucht wird.
Eine leere Liste ist möglich, geben Sie dazu pcount == 0 an, in diesem Fall wird pval ignoriert.
Leere Strings als Elemente der Liste sind ebenfalls erlaubt.
Wird die C++-Funktion mit nur einem Parameter aufgerufen, wird pval == NULL und pcount == 0 angenommen. Beim Aufruf mit zwei Parametern gilt die Voreinstellung pcount = 0xFFFF, es wird also ein mit NULL abgeschlossenes Zeigerarray erwartet.
Nur die Strings werden abgespeichert, nicht die Zeiger. Daher kann eine String-Liste zwischen Prozessen ausgetauscht und in Dateien abgespeichert werden. Die Gesamtgröße des Pointer-Arrays und der Strings muss unter cxiMaxVarSize bleiben.
Portabilität:
Diese Funktion ist in allen unterstützten Systemen verfügbar. Ab Version 2.04 wird bei pval == NULL und pcount != 0 eine leere Liste erzeugt, vorhergehende Versionen fassen diesen Fall als Fehler (cxiErrorInvalidParam) auf.
Siehe auch:
InsertItem
AppendItem
DeleteItem
GetLst
GetItem
GetItemStr
GetItemTest
QueryItemCount
FindInList
IsInList
IsEqual...
Beispiel:
#include "cxib.h"
int main (int argc, char **argv)
{
CxiNode cxi1;
CxiError rc = cxi1.SetLst ("ARGS", argv, argc);
if (rc)
{
// Fehlerbehandlung...
}
rc = AppendItem ("ARGS", "HUGO.DAT", 0);
if (rc)
{
// Fehlerbehandlung...
}
rc = AppendItem ("ARGS", "/E /X /A:7", 1);
if (rc)
{
// Fehlerbehandlung...
}
// ...
char buffer [256];
char **liste = cxi1.GetLst ("ARGS", buffer, sizeof buffer);
if (list == 0)
{
// Fehlerbehandlung...
}
// ...
return 0;
}