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

CXI-Basis-Programmierreferenz / Version 2 / Tools / INI-Dateien /

ReadIniFileString - Lesen eines Eintrags (String)

[C] char * cxiReadIniFileString (const char *fname, const char *sname, const char *vname, char *buffer, unsigned int buflen)

[S3:SPEZIAL] Lesen eines INI-Eintrags

fname:
Name der INI-Datei

sname:
Name des Abschnitts ohne Klammern

vname:
Name der Variablen

buffer:
Puffer für den Wert der Variablen

buflen:
Maximale Länge des Puffers für den Wert (einschließlich Nullbyte)

return:
0 ok, sonst Fehler

Diese Funktion liest eine Variable aus einer INI-Datei, ohne dafür ein CxiTree-Objekt anlegen zu müssen.

Um andere Variablentypen als Strings auszulesen, lesen Sie die Datei zunächst mittels CxiTree-Konstruktor oder SetFromStringOrFile ein und verwenden anschließend die Variable aus dem CxiTree-Objekt.

Im Fehlerfall wird der Pufferinhalt nicht verändert.

Um die Existenz eines Abschnitts zu prüfen, ist vname=NULL zu setzen. Der Rückgabewert gibt dann Folgendes an:
- 2923 (cxiErrorSetFromFileLabelNotFound): Datei ok, Abschnitt nicht gefunden
- 2924 (cxiErrorSetFromFileNoDataFound): Datei ok, Abschnitt vorhanden, aber leer
- 0 (cxiNoError): Datei ok, Abschnitt vorhanden, nicht leer
- sonst: Dateifehler

Anmerkungen zum Inhalt der INI-Datei:
- Variablenwerte in der INI-Datei können in einfache (') oder doppelte (") Anführungszeichen eingeschlossen werden, diese Anführungszeichen werden nicht als Teil des Wertes aufgefasst und somit nicht in den Zielpuffer kopiert. Innerhalb des Wertes kann das jeweils andere Anführungszeichen frei verwendet werden.
- Enthält der Wert eines INI-Eintrags Leer- oder Sonderzeichen, so MUSS er in Anführungszeichen gesetzt werden, damit er von dieser Funktion korrekt eingelesen werden kann, z.B.
MESSAGE = "Es ist ein Fehler aufgetreten!"
NOCOMMENT = "a;b//c"
- Es ist nicht notwendig, Zahlenwerte oder Schlüsselworte in Anführungszeichen einzuschließen, z.B.
MAXCOUNT = 19
SHOWCOUNT = TRUE
- Abschnittsüberschriften müssen in eckige Klammern eingeschlossen werden und ohne Einrückung direkt am Zeilenanfang stehen.
- Variablen innerhalb eines Abschnitts können eingerückt werden.
- Die Namen von Variablen unterliegen den gleichen Einschränkungen wie die Namen von CXI-Variablen. Insbesondere wird die Groß- und Kleinschreibung nicht bei der Suche berücksichtigt.

Portabilität:
Diese Funktion ist ab Version 2.11 in allen unterstützten Systemen verfügbar. Einige spätere Unterreleases der Version 2.10 für OS/2 und Win16 enthalten diese Funktion bereits.

Siehe auch:
WriteIniFileString - Schreiben eines Eintrags (String)
UpdateIniFile - Schreiben eines Eintrags (allgemein)

Beispiel 1:

Auslesen der Variablen "welt" aus dem Abschnitt [hallo]
in der Datei "otto.ini" im aktuellen Verzeichnis:

  #include "cxib.h"

  char buffer [1000];
  strcpy (buffer, "<default>");   // Vorbesetzen für den Fehlerfall

  CxiError rc = cxiReadIniFileString
                ("otto.ini", "hallo", "welt", buffer, sizeof buffer);

  if (rc != cxiNoError) { ...Fehlerbehandlung... }

Beispiel 2:

Prüfen, ob der Abschnitt [hallo] in der Datei "otto.ini"
im aktuellen Verzeichnis vorhanden ist:

  #include "cxib.h"

  CxiError rc = cxiReadIniFileString ("otto.ini", "hallo", 0, 0, 0);

  if (rc == cxiNoError || rc == cxiErrorSetFromFileNoDataFound)
    { ... Abschnitt vorhanden ... }
  else if (rc == cxiErrorSetFromFileLabelNotFound)
    { ... Abschnitt nicht vorhanden ... }
  else
    { ... Problem mit der Datei ... }


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

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