Sprung zum Seitenende Struktur Themen A...Z Titel << >>

CXI-Basis-Programmierreferenz / Version 2 / Datenspeicherung / CxiNode / Zeichenketten /

SetLst - Zeichenkettenliste setzen

[C++] CxiError CxiNode :: SetLst (CxiName pname, const char **pval, CxiShort pcount = 0xFFFF)
[C++] CxiError CxiNode :: SetLst (CxiName pname)
[C] CxiError cxiSetLst ...P (CxiHandle self, CxiName pname, const char **pval, CxiShort pcount)

[S1:BASIS] Setzt eine String-Liste

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


[i] CXI-Basis-Programmierreferenz
Version 2.10 72 (1014-001), erstellt am 15. April 2000
Textseite 160 von 855, Thema 8446 (SetLst)
[c] Copyright (c) 1996-2000 by TeraConnect GmbH

Sprung zum Seitenanfang Struktur Themen A...Z Titel << >>