|
| File (const std::string &rsFullFileName, TdOpenInifileMode openMode) |
|
| File () |
|
virtual | ~File () |
|
int | store () |
|
int | refresh () |
|
void | setFullFileName (const std::string &rsFullFileName) |
|
std::string | getFileName () |
|
int | getLine (Line *&prRetVal, std::size_t nPosition, ptl::SeekMode eMode) |
|
int | insertLine (Line *pIniLine, ptl::InsertPosition eInsertPosition=ptl::InsertCURRENT, ptl::VH eBeforeBehind=ptl::BEHIND) |
|
int | removeLine (ptl::ElementPosition eFirstLastCurrent=ptl::CURRENT_POS) |
|
int | getLine (Line *&prRetVal, std::string *psSection, std::string *psKey=0) |
|
int | getKeyValue (std::string &rsValue, std::string *psSection, std::string *psKey) |
|
int | setKeyValue (const std::string &rsSection, const std::string &rsKey, const std::string &rsValue) |
|
int | removeKey (const std::string &rsSection, const std::string &rsKey) |
|
int | getAsBlob (eut::Blob *&prBlob) |
|
int | makeLines (eut::Blob *pBlob) |
|
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.
Codeschnipsel
Im folgenden wird eine Ini-Datei "test.ini" angelegt:
#include <iostream>
int main(int argc, char *argv[])
{
int t_iErr = 0;
try
{
}
{
std::cout <<
"Error :" << ERR.what() <<
"ErrNo.:" << ERR.
error() << std::endl;
}
if ( ! t_iErr ) t_iErr = t_pIniFile->
setKeyValue(
"[Section 1]",
"Key 1.1",
"Value 1.1" );
if ( ! t_iErr ) t_iErr = t_pIniFile->
setKeyValue(
"[Section 1]",
"Key 1.2",
"Value 1.2" );
if ( ! t_iErr ) t_iErr = t_pIniFile->
setKeyValue(
"[Section 2]",
"Key 2.1",
"Value 2.1" );
if ( ! t_iErr ) t_iErr = t_pIniFile->
setKeyValue(
"[Section 2]",
"Key 2.2",
"Value 2.2" );
try
{
t_pCommentLine =
new ini::Line(
"; comment 1" );
}
{
std::cout <<
"Error :" << ERR.what() <<
"ErrNo.:" << ERR.
error() << std::endl;
}
if ( ! t_iErr )
{
t_iErr = t_pIniFile->
insertLine( t_pCommentLine );
}
if ( ! t_iErr ) t_iErr = t_pIniFile->
setKeyValue(
"",
"Lonly Key 1",
"Value 1" );
if ( ! t_iErr ) t_iErr = t_pIniFile->
store();
delete t_pIniFile; t_pIniFile = 0;
}
Header für ErrorNException
Diese Exception-Klasse hat zusätzlich zur Message ein Integer-Attribute für eine Fehlernummer.
Definition EuException.h:73
int error() const
Definition EuException.h:276
Eine INI-Datei beinhaltet Informationen für Programme.
Definition IniFile.h:313
int insertLine(Line *pIniLine, ptl::InsertPosition eInsertPosition=ptl::InsertCURRENT, ptl::VH eBeforeBehind=ptl::BEHIND)
int setKeyValue(const std::string &rsSection, const std::string &rsKey, const std::string &rsValue)
Ist eine Kommentartzeile, aber auch Oberklasse für Section und Key.
Definition IniLine.h:77
const TdOpenInifileMode bCreateInifile
Definition IniFileTypes.h:213
Die INI-Datei "test.ini" hat folgenden Inhalt:
[Section 1]
Key 1.1=Value 1.1
Key 1.2=Value 1.2
[Section 2]
Key 2.1=Value 2.1
Key 2.2=Value 2.2
; comment 1
Lonly Key 1=Value 1
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:
#include <iostream>
int main(int argc, char *argv[])
{
int t_iErr = 0;
try
{
}
{
std::cout <<
"Error :" << ERR.what() <<
"ErrNo.:" << ERR.
error() << std::endl;
}
std::string t_sValue,
t_sSection2( "[Section 1]" ),
t_sKey( "Key 1.2" );
t_iErr = t_pIniFile->
getKeyValue( t_sValue, & t_sSection2, & t_sKey );
if ( ! t_iErr ) std::cout << "The value from 'Section 1', 'Key 1.2' is: " << t_sValue << std::endl;
if ( ! t_iErr ) t_iErr = t_pIniFile->
setKeyValue(
"[Section 1]",
"Key 1.2",
"new Value" );
if ( ! t_iErr ) t_iErr = t_pIniFile->
store();
delete t_pIniFile; t_pIniFile = 0;
}
int getKeyValue(std::string &rsValue, std::string *psSection, std::string *psKey)
const TdOpenInifileMode bOpenInifile
Definition IniFileTypes.h:227
Die INI-Datei "test.ini" hat jetzt folgenden Inhalt:
[Section 1]
Key 1.1=Value 1.1
Key 1.2=new Value
[Section 2]
Key 2.1=Value 2.1
Key 2.2=Value 2.2
; comment 1
Lonly Key 1=Value 1
Es können alle Einträge ermittelt werden...
#include <iostream>
int main(int argc, char *argv[])
{
int t_iErr = 0;
try
{
}
{
std::cout <<
"Error :" << ERR.what() <<
"ErrNo.:" << ERR.
error() << std::endl;
}
std::cout <<
"############# " << t_pIniFile->
getFileName() <<
" #############" << std::endl;
while ( t_pShowLine )
{
std::cout << t_pShowLine->
getText() << std::endl;
{
while ( t_pShowSectionLine )
{
std::cout << t_pShowSectionLine->
getText() << std::endl;
}
t_iErr = ( t_iErr == eut::ERR_RANGE ? 0 : t_iErr );
}
}
std::cout << "####################################" << std::endl;
std::cout << "ErrNo.:" << t_iErr << std::endl;
delete t_pIniFile; t_pIniFile = 0;
}
std::string getFileName()
int getLine(Line *&prRetVal, std::size_t nPosition, ptl::SeekMode eMode)
LINE_TYPE getType() const
std::string getText() const
Eine Sektion kann nur einmalig in einer INI-Datei vorkommen, steht in eckigen Klammern und hat in der...
Definition IniSection.h:86
int getSectionLine(Line *&prRetVal, std::size_t nPosition, ptl::SeekMode eMode)
@ IniSECTION
Definition IniFileTypes.h:154
@ RANGE
Definition PtlListErrors.h:214
@ CURRENT
Definition PtlListTypes.h:402
@ START
Definition PtlListTypes.h:380
... und ergibt folgende Anzeige:
############# test.ini #############
[Section 1]
Key 1.1=Value 1.1
Key 1.2=new Value
[Section 2]
Key 2.1=Value 2.1
Key 2.2=Value 2.2
; comment 1
Lonly Key 1=Value 1
####################################
ErrNo.:0
- Autor
- Helmut Jakoby
- Copyright
- © 1995 Helmut Jakoby