Funktionen | |
| const std::string | readFile (std::string fileName, std::ostream &errorStream) |
| Liefert den Inhalt einer Text-Datei. Mehr... | |
| bool | changeDir (std::string dirName) |
| Wechselt das Verzeichnis. Mehr... | |
| const std::string | getWorkingDir () |
| Liefert den Pfad des aktuellen Verzeichnisses. Mehr... | |
| const std::string | getXmlFilename (std::string para) |
| Liefert den Pfad einer XML-Datei gemäß der SfleX-Verzeichnis Hierachie. Mehr... | |
| const std::string | getXslFilename (std::string para1, std::string para2) |
| Liefert den Pfad einer XSL-Datei gemäß der SfleX-Verzeichnis Hierachie. Mehr... | |
| const std::string | quoteSingle (std::string theString) |
| Umgibt einen String mit einfachen Anführungsstrichen ('). Mehr... | |
| const std::string | stripWhiteSpace (std::string theString) |
| Löscht Whitespace-Zeichen aus einem String. Mehr... | |
In diesem Namensbereich werden einige nützliche Funktionen definiert.
|
|
Wechselt das Verzeichnis.
00057 {
00058 const int f = chdir( dirName.c_str() );
00059 bool r = ( f == 0 );
00060 return r;
00061 }
|
|
|
Liefert den Pfad des aktuellen Verzeichnisses.
00067 {
00068 char dir[100];
00069 return getcwd(dir, 100);
00070 }
|
|
|
Liefert den Pfad einer XML-Datei gemäß der SfleX-Verzeichnis Hierachie.
Dabei gilt folgende Aufbau:
00076 {
00077 using std::string;
00078
00079 SflexConfig *conf = SflexConfig::getConfig();
00080
00081 const string pool = conf->getValue( "sflex", "pool" );
00082 const string dir = conf->getValue( pool, "root" );
00083 const string praefix = conf->getValue( pool, "praefix" );
00084 const string suffix = conf->getValue( pool, "suffix" );
00085
00086 bool isEmpty = ( pool.empty() ||
00087 dir.empty() ||
00088 praefix.empty() ||
00089 suffix.empty() );
00090 if ( isEmpty ) {
00091 return "";
00092 }
00093
00094 return dir + "/xml/" + praefix + para + suffix;
00095 }
|
|
||||||||||||
|
Liefert den Pfad einer XSL-Datei gemäß der SfleX-Verzeichnis Hierachie.
Dabei gilt folgende Aufbau:
00102 {
00103 using std::string;
00104
00105 SflexConfig *conf = SflexConfig::getConfig();
00106
00107 const string mod = conf->getValue( "sflex", "module" );
00108 const string pool = conf->getValue( "sflex", "pool" );
00109 const string dir = conf->getValue( pool, "root" );
00110 const string praefix = conf->getValue( pool, "praefix" );
00111 const string suffix = conf->getValue( pool, "suffix" );
00112
00113 bool isEmpty = ( mod.empty() ||
00114 pool.empty() ||
00115 dir.empty() ||
00116 praefix.empty() ||
00117 suffix.empty() );
00118 if ( isEmpty ) {
00119 return "";
00120 }
00121
00122 return dir + "/xsl/" + mod + "/" + para1 + "_" + para2 + ".xsl";
00123 }
|
|
|
Umgibt einen String mit einfachen Anführungsstrichen ('). Dies wird z.B. dann benötigt, wenn der Wert eines String-Parameters in einem XSLT Stylesheet gesetzt werden soll.
00129 {
00130 return "'" + theString + "'";
00131 }
|
|
||||||||||||
|
Liefert den Inhalt einer Text-Datei.
00034 {
00035 std::ifstream in;
00036 std::ostringstream content;
00037
00038 in.open( fileName.c_str(), ios::in );
00039
00040 if ( !in ) {
00041 errorStream << "Helper: Datei "
00042 << fileName
00043 << " konnte nicht geöffnet werden!\n";
00044 return "";
00045 }
00046
00047 content << in.rdbuf();
00048 in.close();
00049
00050 return content.str();
00051 }
|
|
|
Löscht Whitespace-Zeichen aus einem String. Dazu zählen zwei aufeinanderfolgende Leerzeichen ' ', das Tabulator-Zeichen '\t' und das Newline-Zeichen '\n'. Das vereinfacht das Erstellen von Stylesheets, bei denen es in der Ausgabe auf solche Zeichen ankommt (Plain Text, LaTeX). So wird sicher gestellt, daß die Whitespace-Zeichen nur durch das Stylesheet hinzugefügt werden und nicht noch von der XML-Datei her übrig bleiben (etwa durch Einrückungen).
00135 {
00136 unsigned int whiteSpacePos = theString.find( "\n" );
00137 while( whiteSpacePos < string::npos ) {
00138 theString.replace( whiteSpacePos, 1, "" );
00139 whiteSpacePos = theString.find( "\n", whiteSpacePos + 1 );
00140 }
00141
00142 whiteSpacePos = theString.find( "\t" );
00143 while( whiteSpacePos < string::npos ) {
00144 theString.replace( whiteSpacePos, 1, "" );
00145 whiteSpacePos = theString.find( "\t", whiteSpacePos + 1 );
00146 }
00147
00148 whiteSpacePos = theString.find( " " );
00149 while( whiteSpacePos < string::npos ) {
00150 theString.replace( whiteSpacePos, 2, "" );
00151 whiteSpacePos = theString.find( " ", whiteSpacePos );
00152 }
00153
00154 return theString;
00155 }
|
1.2.14 geschrieben von Dimitri van Heesch,
© 1997-2002