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