Eine INI-Datei beinhaltet Informationen für Programme. Mehr ...
#include <IniFile.h>
Öffentliche Methoden | |
File () | |
File (const std::string &rsFullFileName, TdOpenInifileMode openMode) | |
virtual | ~File () |
int | getAsBlob (eut::Blob *&prBlob) |
std::string | getFileName () |
int | getKeyValue (std::string &rsValue, std::string *psSection, std::string *psKey) |
int | getLine (Line *&prRetVal, std::size_t nPosition, ptl::SeekMode eMode) |
int | getLine (Line *&prRetVal, std::string *psSection, std::string *psKey=0) |
int | insertLine (Line *pIniLine, ptl::InsertPosition eInsertPosition=ptl::InsertCURRENT, ptl::VH eBeforeBehind=ptl::BEHIND) |
int | makeLines (eut::Blob *pBlob) |
int | refresh () |
int | removeKey (const std::string &rsSection, const std::string &rsKey) |
int | removeLine (ptl::ElementPosition eFirstLastCurrent=ptl::CURRENT_POS) |
void | setFullFileName (const std::string &rsFullFileName) |
int | setKeyValue (const std::string &rsSection, const std::string &rsKey, const std::string &rsValue) |
int | store () |
Private Methoden | |
File (const File &) | |
File & | operator= (const File &) |
Private Attribute | |
LineFactory | m_LineFactory |
ptl::TDVList< Line > | m_LineList |
std::string | m_sFileName |
Eine INI-Datei beinhaltet Informationen für Programme.
Eine INI-Datei kann Sektionen mit Variablen und Werten sowie Kommentare enthalten. Die Informationen können mit ini::File angelegt, gelesen und gepflegt werden können.
Im folgenden wird eine Ini-Datei "test.ini" angelegt:
Die INI-Datei "test.ini" hat folgenden Inhalt:
In der INI-Datei "test.ini" wird der Schlüssel "Key 1.2" aus der Sektion "[Section 1]" geholt, angezeigt und auf "new Value" geändert:
Die INI-Datei "test.ini" hat jetzt folgenden Inhalt:
Es können alle Einträge ermittelt werden...
... und ergibt folgende Anzeige:
ini::File::File | ( | const std::string & | rsFullFileName, |
TdOpenInifileMode | openMode ) |
Konstruktor mit Parameterübergabe.
[in] | rsFullFileName | Die vollständige Dateibezeichnung wie z.B.: "c:\windows\system.ini". |
[in] | openMode | Wenn openMode auf ini::bCreateInifile, dann wird versucht, eine neue INI-Datei zu generieren. Wenn openMode auf ini::bOpenInifile, dann wird versucht, die INI-Datei mit der übergebenen Bezeichnung einzulesen. |
eut::ErrorNException | Bei einem Fehler wird eine Exception geworfen. |
Wird benutzt von File() und operator=().
ini::File::File | ( | ) |
Standard-Konstruktor.
|
virtual |
Destruktor, Speicher wird freigegeben.
|
private |
Der Copy-Konstruktor steht nicht zur Verfügung.
Benutzt File().
int ini::File::getAsBlob | ( | eut::Blob *& | prBlob | ) |
Liefert alle Einträge der Datei in einem Blob.
[in,out] | prBlob | Das File als Blob. |
std::string ini::File::getFileName | ( | ) |
Liefert die Bezeichnung der INI-Datei.
int ini::File::getKeyValue | ( | std::string & | rsValue, |
std::string * | psSection, | ||
std::string * | psKey ) |
Liefert ein KeyValue.
[in,out] | rsValue | Der gefundene KeyValue als std::string. |
[in] | psSection | |
[in] | psKey | Siehe psSection. |
Wenn es folgenden Eintrag in einer INI-Datei geben sollte:
liefert diese Funktion beim Aufruf von:
in rsValue "app850.fon" zurück.
int ini::File::getLine | ( | Line *& | prRetVal, |
std::size_t | nPosition, | ||
ptl::SeekMode | eMode ) |
Liefert einen Line aus der m_LineList in Bezug auf die ÜbergabeParameter.
[in,out] | prRetVal | übergebene Referenz in welche das gefundene Objekt "hineinkommt" |
[in] | nPosition | Offset rellativ zur... |
[in] | eMode | ...Position |
Parameterbeispiele:
int ini::File::getLine | ( | Line *& | prRetVal, |
std::string * | psSection, | ||
std::string * | psKey = 0 ) |
Liefert eine Sektion oder einen Key.
[in,out] | prRetVal | Wenn gefunden, in Abhängigkeit der anderen Parameter ein Zeiger auf ein Objekt vom Typ Section oder Key. |
[in] | psSection | |
[in] | psKey | Siehe psSection. |
int ini::File::insertLine | ( | Line * | pIniLine, |
ptl::InsertPosition | eInsertPosition = ptl::InsertCURRENT, | ||
ptl::VH | eBeforeBehind = ptl::BEHIND ) |
Fügt den übergebenen Eintrag in die m_LineList ein.
[in] | pIniLine | Das einzufügende Objekt der Klasse Line |
[in] | eInsertPosition | Zeigt an, wohin das Datenobjekt in die Liste eingefügt werden soll. Mögliche Parameter sind ptl::InsertHEAD (am Anfang), ptl::InsertLAST (am Ende) oder ptl::InsertCURRENT (am aktuellen Element). |
[in] | eBeforeBehind | Gibt an, ob das neue Element vor oder hinter das, im Parameter eInsertPosition angegebene Element, gesetzt wird. Mögliche Parameter sind BEHIND und BEFORE |
Benutzt ptl::BEHIND und ptl::InsertCURRENT.
int ini::File::makeLines | ( | eut::Blob * | pBlob | ) |
Erstellt aus übergebenen Blob die einzelnen Einträge in der INI-Datei.
[in] | pBlob | Das Blob mit dem Inhalt einer Ini-Datei. Das Blob wird ausgewertet und alle Einträge erstellt. |
Zuweisungsoperator steht nicht zur Verfügung.
Benutzt File().
int ini::File::refresh | ( | ) |
Es wird die INI-Datei aus m_sFileName eingelesen.
int ini::File::removeKey | ( | const std::string & | rsSection, |
const std::string & | rsKey ) |
Entfernt einen Eintrag
[in] | rsSection | Sektion |
[in] | rsKey | Eintrag |
Entfernt einen Eintrag folgendermassen:
int ini::File::removeLine | ( | ptl::ElementPosition | eFirstLastCurrent = ptl::CURRENT_POS | ) |
Entfernt den Eintrag aus der m_LineList.
Wenn ein nachfolgendes Element vorhanden ist, wird dieses zum aktuellen Element, ansonsten das vorherige Element, wenn dieses vorhanden ist. Vom entfernten Eintrag wird der Destruktor aufgerufen.
[in] | eFirstLastCurrent | Folgende Werte sind möglich: ptl::FIRST_POS, ptl::LAST_POS, (default) ptl::CURRENT_POS, ptl::NEXT_POS und ptl::PREVIOUS_POS. |
Benutzt ptl::CURRENT_POS.
void ini::File::setFullFileName | ( | const std::string & | rsFullFileName | ) |
Setzt die Bezeichnung der INI-Datei.
[in] | rsFullFileName | Die vollständige Dateibezeichnung wie z.B.: "c:\windows\system.ini". |
int ini::File::setKeyValue | ( | const std::string & | rsSection, |
const std::string & | rsKey, | ||
const std::string & | rsValue ) |
Setzt einen Eintrag
[in] | rsSection | Die Sektion entweder mit '[' und ']' oder ohne diesen beiden Zeichen. |
[in] | rsKey | Der Eintrag |
[in] | rsValue | Der Wert |
Setzt einen Eintrag folgendermassen:
int ini::File::store | ( | ) |
Es wird die INI-Datei aus m_sFileName gespeichert.
|
private |
Die LineFactory liefert einen INI_Datei Eintrag typgerecht.
|
private |
Liste der Einträge in dieser INI-Datei.
|
private |
In diesem Attribut wird die Bezeichnung der INI-Datei abgelegt.