SFileIni

Klasse zu Handhabung von Dateien im ini-Format. [Mehr ...]

Vererbung

Basisklassen(n)   abgeleitete Klassen
  SFileIni  

Attribute

public:

Attribut Typ Beschreibung
errorText SString letzter Fehlertext

protected:

Attribut Typ Beschreibung
fileName SString Name der Datei
inhalt SString Dateiinhalt
isChanged BOOL Daten wurden geändert
readOnly BOOL

Operationen

public:

Name Parameter Rückgabewert Beschreibung
addHistoryEntry const SString& section,
const SString& entry
void Fügt einen History-Eintrag einer History-Sektion hinzu.
create const SString& filename BOOL Erstellt eine neue ini-Datei mit dem Namen 'filename'.
getAllSections SStringList *names,
const SString& sectionmask,
SStringList *contents=NULL
int Sucht alle Sektionsnamen in der Datei anhand einer Maske. Es werde keine Sektionen doppelt aufgenommen.
getEntry const SString& section,
const SString& keyWord,
const SString& standard=""
SString Sucht einen Eintrag in einer festgelegten Sektion und gibt dessen Wert zurück. Ist der Eintrag nicht vorhanden, wird der Wert von 'standard' zurückgegeben.
getEntryInt const SString& section,
const SString& keyWord,
int standard
int liefert den Inhalt eines Eintrags einer bestimmten Sektion als Zahlenwert oder den Wert von 'standard', wenn der Eintrag nicht existiert.
getHistorySection const SString& section,
SStringList* arrayEntries
long Überträgt eine History-Sektion in eine SStringList.
getSection const SString& section SString Gibt den kompletten Inhalt einer Sektion als String zurück.
getSectionToMap const SString& section,
SMapStringToNum& map,
BOOL clearMap=true
long Überträgt eine Sektion in eine SMapStringToNum.
getSectionToMap const SString& section,
SMapStringToString& map,
BOOL clearMap=true
long Überträgt eine Sektion in eine SMapStringToString.
getSectionToStringList const SString& section,
SStringList *arrayLinks,
SStringList *arrayRechts,
bool skipComments=true
long Überträgt eine Sektion in ein oder zwei SStringList.
isOpened BOOL Ermittelt ob die Datei geöffnet ist.
read const SString& filename,
BOOL createIfNotExist=false,
BOOL readOnly=FALSE
BOOL Öffnet und liest eine Ini-Datei.
removeHistoryEntry const SString& section,
const SString& entry
void Entfernt einen History-Eintrag aus einer History-Sektion.
renameSection const SString& oldName,
const SString& newName
BOOL Ändert den Namen einer Sektion
save BOOL Speichert den Inhalt in die Datei zurück.
setEntry const SString& section,
const SString& keyWord,
const SString& value
void Speichert einen Eintrag in einer Sektion.
setEntryInt const SString& section,
const SString& keyWord,
int value
void Speichert einen Eintrag in einer Sektion.
setSection const SString& sectionName,
const SString& inhaltNeu
BOOL Schreibt eine komplette Sektion. Wenn die Sektion bereits existiert, wird sie überschrieben.
setSection const SString& sectionName,
SMapStringToString& map
BOOL Schreibt eine komplette Sektion. Wenn die Sektion bereits existiert, wird sie überschrieben.
setSection const SString& sectionName,
SMapStringToNum& map
BOOL Schreibt eine komplette Sektion. Wenn die Sektion bereits existiert, wird sie überschrieben.

protected:

Name Parameter Rückgabewert Beschreibung
findPos const SString& section,
const SString& entry,
allginipos *pos
BOOL Ermittelt die Positionen von Section/Entry/Wert.
getSectionEntry SString& section,
DWORD& i
SString Gibt eine Zeile aus einer Section zurück Wird intern zum itterieren durch eine Section verwendet.

Detailbeschreibung SFileIni

Klasse zu Handhabung von Dateien im ini-Format.


Es werden keine windowstypischen Funktionen verwendet.
Sektionen haben exakte Bezeichnungen und beginnen am Zeilenanfang, bei Fehler werden die Fehler-Texte in "errorText" abgelegt und keine Message ausgegeben.

Beispiel: INI-Dateiformat

INI-Dateien haben folgende Struktur:

[Sektion_1]
Entry_1=Wert_1
Entry_2=Wert_2
...
[Sektion_2]
Entry_n=Wert_n
...
Sie bestehen aus mehreren Sektionen. Diese beginnen mit dem Sektionsnamen in eckigen Klammern. Jede Sektion enthält mehrere Einträge. Ein Eintrag ist eine Zeile der Datei und besteht aus einem Schüssel und einem Wert. Diese sind durch '=' getrennt. Innerhalb einer Sektion müssen die Schlüssel aller Einträge eindeutig sein.Jede Sektion muss einen eindeutigen Namen haben.

Funktionsbeschreibungen

addHistoryEntry(const SString& section, const SString& entry) void

Fügt einen History-Eintrag einer History-Sektion hinzu.

History-Sektionen haben eine optionalen Eintrag "maxEntries=..." der die maximale Anzahl der Einträge festlegt, gefolgt von den History-Einträgen, beginnend mit dem jüngsten. Zum Setzten von "maxEntries" verwenden Sie bitte die Funktion setEntry(..). Ist kein Eintrag "maxEntries" vorhanden werden 10 Einträge gespeichert.
Enthält der Eintrag ein Gleichheitszeichen ('=') so ist nur der vor dem Gleichheitszeichen befindliche Teil für Vergleiche ausschlaggebend (z.B. entfernung von Dopplungen), hinter dem Gleichheitszeichen können dann unterschiedliche Parameter stehen.

Parameter:

section exacter Sektionsname
entry neu aufzunehmender Einrtrag

create(const SString& filename) BOOL

Erstellt eine neue ini-Datei mit dem Namen 'filename'.

Änderungen werden zuvor in der alten Datei gespeichert.

Parameter:

filename Dateiname mit Pfad

Rückgabe:

BOOL true wenn erfolgreich

findPos(const SString& section, const SString& entry, allginipos *pos) BOOL

Ermittelt die Positionen von Section/Entry/Wert.

Parameter:

section Sektionsname
entry Eintragsname
pos zu füllende allginipos-Struktur

Rückgabe:

BOOL true wenn Section/Eintrag/Wert gefunden und allginipos ok
pos gefundene PositionenStruktur mit Positionszeigern auf Start und Ende von Section/Eintrag/Wert

getAllSections(SStringList *names, const SString& sectionmask, SStringList *contents=NULL) int

Sucht alle Sektionsnamen in der Datei anhand einer Maske. Es werde keine Sektionen doppelt aufgenommen.

Parameter:

names Zeiger auf zu füllende SStringList, sie wird überschrieben.
sectionmask Maske der zu suchenden Sektionsnamen, es können mehrere Maske mit | getrennt angegeben werden
  • "*" - alle
  • <section> => genau so
  • <section>* => so beginnend
  • *<section> => so endend
contents optionaler Zeiger auf eine SStringList, die die Inhalte der Sektionen aufnehmen soll

Rückgabe:

int Anzahl der gefunden Sektionsnamen
names Liste mit allen gefunden Sektionsnamen

getEntry(const SString& section, const SString& keyWord, const SString& standard="") SString

Sucht einen Eintrag in einer festgelegten Sektion und gibt dessen Wert zurück. Ist der Eintrag nicht vorhanden, wird der Wert von 'standard' zurückgegeben.

Parameter:

section Sektionsname
keyWord Name des Eintrages
standard Standardwert falls der Eintrag nicht existiert

Rückgabe:

SString Eintrag oder der Wert von 'standard'

getEntryInt(const SString& section, const SString& keyWord, int standard) int

liefert den Inhalt eines Eintrags einer bestimmten Sektion als Zahlenwert oder den Wert von 'standard', wenn der Eintrag nicht existiert.

Parameter:

section Sektionsname
keyWord Eintragsname
standard Standardwert, wenn der Eintrag nicht existiert

Rückgabe:

int Wert des Eintrags

getHistorySection(const SString& section, SStringList* arrayEntries) long

Überträgt eine History-Sektion in eine SStringList.

Der Inhalt der SStringList wird überschrieben. Siehe addHistoryEntry(..)

Parameter:

section exakter Name der Sektion
arrayEntries Zeiger auf zu füllende Liste

Rückgabe:

long Anzahl der Elemente im Array

getSection(const SString& section) SString

Gibt den kompletten Inhalt einer Sektion als String zurück.

Parameter:

section Sektionsname

Rückgabe:

SString Inhalt der Sektion

getSectionEntry(SString& section, DWORD& i) SString

Gibt eine Zeile aus einer Section zurück Wird intern zum itterieren durch eine Section verwendet.

getSectionToMap(const SString& section, SMapStringToNum& map, BOOL clearMap=true) long

Überträgt eine Sektion in eine SMapStringToNum.

Der Inhalt der SMapStringToNum wird überschrieben.
Es werden keine Zeilen die mit ; beginnen übernommen.

Parameter:

section exakter Name der Sektion
map Referenz der zu füllenden Map
clearMap (optional) wenn true wird der Inhalt der Map überschrieben

Rückgabe:

long Anzahl der Elemente

getSectionToMap(const SString& section, SMapStringToString& map, BOOL clearMap=true) long

Überträgt eine Sektion in eine SMapStringToString.

Es werden keine Zeilen die mit ; beginnen übernommen.

Parameter:

section exakter Name der Sektion
map Referenz der zu füllenden Map
clearMap (optional) wenn true wird der Inhalt der Map überschrieben

Rückgabe:

long Anzahl der Elemente

getSectionToStringList(const SString& section, SStringList *arrayLinks, SStringList *arrayRechts, bool skipComments=true) long

Überträgt eine Sektion in ein oder zwei SStringList.

Der Inhalt der SStringList wird überschrieben.

Parameter:

section exakter Name der Sektion
arrayLinks zu füllende Liste (bei 2 Listen sind links die Schlüssel)
arrayRechts Zeiger auf 2. Liste (für Werte)
  • NULL -> gesamter Eintrag in arrayLinks
  • !NULL -> Links von '=' in arrayLinks und der Rest ist arrayRechts
SkipComments true -> es werden keine Zeilen die mit ; beginnen übernommen

Rückgabe:

long Anzahl der Elemente

isOpened() BOOL

Ermittelt ob die Datei geöffnet ist.

Rückgabe:

BOOL true wenn die Datei geöffnet ist

read(const SString& filename, BOOL createIfNotExist=false, BOOL readOnly=FALSE) BOOL

Öffnet und liest eine Ini-Datei.

Parameter:

filename vollständiger Dateiname

Rückgabe:

BOOL true wenn kein Fehler

removeHistoryEntry(const SString& section, const SString& entry) void

Entfernt einen History-Eintrag aus einer History-Sektion.

Parameter:

section exacter Sektionsname
entry zu löschender Einrtrag

renameSection(const SString& oldName, const SString& newName) BOOL

Ändert den Namen einer Sektion

Parameter:

oldName alter Name
newName neuer Name

Rückgabe:

BOOL true wenn erfolgreich

save() BOOL

Speichert den Inhalt in die Datei zurück.

Rückgabe:

BOOL Speichern erfolgreich.

setEntry(const SString& section, const SString& keyWord, const SString& value) void

Speichert einen Eintrag in einer Sektion.

Ist der Eintrag schon vorhanden wird er überschrieben.

Parameter:

section Sektionsname
keyWord Eintragsname
value Wert

setEntryInt(const SString& section, const SString& keyWord, int value) void

Speichert einen Eintrag in einer Sektion.

Ist der Eintrag schon vorhanden wird er überschrieben.

Parameter:

section Sektionsname
keyWord Eintragsname
value Wert

setSection(const SString& sectionName, const SString& inhaltNeu) BOOL

Schreibt eine komplette Sektion. Wenn die Sektion bereits existiert, wird sie überschrieben.

Parameter:

sectionName Sektionsname
inhaltNeu der zu schreibende Inhalt

Rückgabe:

BOOL true wenn Sektion existierte und überschrieben wurde.

setSection(const SString& sectionName, SMapStringToString& map) BOOL

Schreibt eine komplette Sektion. Wenn die Sektion bereits existiert, wird sie überschrieben.

Parameter:

sectionName Sektionsname
map der zu schreibender Inhalt

Rückgabe:

BOOL true wenn Sektion existierte und überschrieben wurde.

setSection(const SString& sectionName, SMapStringToNum& map) BOOL

Schreibt eine komplette Sektion. Wenn die Sektion bereits existiert, wird sie überschrieben.

Parameter:

sectionName Sektionsname
map der zu schreibender Inhalt

Rückgabe:

BOOL true wenn Sektion existierte und überschrieben wurde.