Hauptseite | Klassenhierarchie | Auflistung der Klassen | Auflistung der Dateien | Klassen-Elemente | Datei-Elemente | Zusätzliche Informationen

U_FILES.H

gehe zur Dokumentation dieser Datei
00001 //############################################################################# 00002 // // 00003 // U_FILES.H // 00004 // Subsystem: Utilities - Dateizugriff // 00005 // Benutzung durch andere Subsysteme erforderlich: JA // 00006 // Implementation: U_FILES.CPP // 00007 //---------------------------------------------------------------------------// 00008 // Autoren: Thomas Kullmann, Günther Reinecker // 00009 // Stand: 03.08.2002 // 00010 // // 00011 //############################################################################# 00012 00013 #ifndef __U_FILES_H 00014 #define __U_FILES_H 00015 00016 #include "utils\u_values.h" 00017 00018 //--||--\\--||--//--||--\\--||--//--||--\\--||--//--||--\\--||--//--||--\\--||-- 00019 00020 //############################################################################# 00021 // globale Methoden (Lesen/ Schreiben von String-, Double- und Long-Werten aus/ in ini-Dateien) 00022 //############################################################################# 00023 00024 // Signatur: IniReadString( out aReturn, in aFile, in aSection, in aKey, 00025 // in aDef, in aLength ) 00026 // liest einen String-Wert aus der ini-Datei <aFile>, in Sektion <aSection>, Schlüssel <aKey> 00027 // und gibt das Ergebnis in <aReturn> zurück. 00028 // Hat der gelesene Wert mehr als <aLength> Zeichen, wird der Rest abgeschnitten. 00029 // Ist der Eintrag nicht vorhanden, wird <aDef> zurückgegeben. 00030 void _CURVECLASS WINAPI IniReadString ( char*, 00031 LPCSTR, LPCSTR, LPCSTR, 00032 LPCSTR, const UINT ); 00033 00034 // Signatur: IniWriteString( in aFile, in aSection, in aKey, 00035 // in aString ) 00036 // schreibt <aString> in die ini-Datei <aFile>, in Sektion <aSection>, Schlüssel <aKey> 00037 // ==> TRUE <--> Wert erfolgreich geschrieben 00038 BOOL _CURVECLASS WINAPI IniWriteString ( LPCSTR, LPCSTR, LPCSTR, 00039 LPCSTR ); 00040 00041 // Signatur: IniReadLong( in aFile, in aSection, in aKey, 00042 // in aDef ) 00043 // ==> der Bool-Wert aus der ini-Datei <aFile>, in Sektion <aSection>, Schlüssel <aKey> 00044 // Ist der Eintrag kein Bool-Wert (weder "0" noch "1"), wird <aDef> zurückgegeben. 00045 // Hat der gelesene Wert Nachkommastellen, werden diese ignoriert. 00046 BOOL _CURVECLASS WINAPI IniReadBool ( LPCSTR, LPCSTR, LPCSTR, 00047 const BOOL ); 00048 00049 // Signatur: IniWriteBool( in aFile, in aSection, in aKey, 00050 // in aBool ) 00051 // schreibt <aBool> in die ini-Datei <aFile>, in Sektion <aSection>, Schlüssel <aKey> 00052 // ==> TRUE <--> Wert erfolgreich geschrieben 00053 BOOL _CURVECLASS WINAPI IniWriteBool ( LPCSTR, LPCSTR, LPCSTR, 00054 const BOOL ); 00055 00056 // Signatur: IniReadLong( in aFile, in aSection, in aKey, 00057 // in aDef ) 00058 // ==> der Long-Wert aus der ini-Datei <aFile>, in Sektion <aSection>, Schlüssel <aKey> 00059 // Hat der gelesene Wert Nachkommastellen, werden diese verworfen.(ABRUNDEN). 00060 // Ist der Eintrag nicht vorhanden oder kein Long-Wert, wird <aDef> zurückgegeben. 00061 // ACHTUNG: Im Gegensatz zur bisherigen Konvertierung mittels atof(...) wird "1a234" nicht als 00062 // Long-Wert akzeptiert! Es wird also <aDef> zurückgegeben. 00063 LONG _CURVECLASS WINAPI IniReadLong ( LPCSTR, LPCSTR, LPCSTR, 00064 const LONG ); 00065 00066 // Signatur: IniReadLong( in aFile, in aSection, in aKey, 00067 // in aMin, in aDef, in aMax ) 00068 // ==> WIEVOR, der zurückzugebene Wert wird jedoch zusätzlich ins 00069 // Intervall [<aMin>..<aMax>] 00070 LONG _CURVECLASS WINAPI IniReadLong ( LPCSTR, LPCSTR, LPCSTR, 00071 const LONG, const LONG, const LONG ); 00072 00073 // Signatur: IniWriteLong( in aFile, in aSection, in aKey, 00074 // in aLong ) 00075 // schreibt <aLong> in die ini-Datei <aFile>, in Sektion <aSection>, Schlüssel <aKey> 00076 // ==> TRUE <--> Wert erfolgreich geschrieben 00077 BOOL _CURVECLASS WINAPI IniWriteLong ( LPCSTR, LPCSTR, LPCSTR, 00078 const LONG ); 00079 00080 // Signatur: IniReadFloat( in aFile, in aSection, in aKey, 00081 // in aDef, in aDigits ) 00082 // WIE IniReadDouble, jedoch für Float 00083 float _CURVECLASS WINAPI IniReadFloat ( LPCSTR, LPCSTR, LPCSTR, 00084 const float, const UINT ); 00085 00086 // Signatur: IniReadFloat( in aFile, in aSection, in aKey, 00087 // in aMin, in aDef, in aMax, in aDigits ) 00088 // ==> WIEVOR, der zurückzugebene Wert wird jedoch zusätzlich ins 00089 // Intervall [<aMin>..<aMax>] eingepasst 00090 float _CURVECLASS WINAPI IniReadFloat ( LPCSTR, LPCSTR, LPCSTR, 00091 const float, const float, const float, const UINT ); 00092 00093 // Signatur: IniWriteFloat( in aFile, in aSection, in aKey, 00094 // in aFloat, in aDigits ) 00095 // WIE IniWriteDouble, jedoch für Float 00096 BOOL _CURVECLASS WINAPI IniWriteFloat ( LPCSTR, LPCSTR, LPCSTR, 00097 const float, const UINT ); 00098 00099 // Signatur: IniReadDouble( in aFile, in aSection, in aKey, 00100 // in aDef, in aDigits ) 00101 // ==> der Double-Wert aus der ini-Datei <aFile>, in Sektion <aSection>, Schlüssel <aKey> 00102 // Hat der gelesene Wert mehr als <aDigits> Nachkommastellen, werden nachfolgendene verworfen.(ABRUNDEN) 00103 // Ist der Eintrag nicht vorhanden oder kein Double-Wert, wird <aDef> zurückgegeben. 00104 // ACHTUNG: Im Gegensatz zur bisherigen Konvertierung mittels atof(...) wird "1a234" nicht als 00105 // Double-Wert akzeptiert! Es wird also <aDef> zurückgegeben. 00106 double _CURVECLASS WINAPI IniReadDouble ( LPCSTR, LPCSTR, LPCSTR, 00107 const double, const UINT ); 00108 00109 // Signatur: IniReadDouble( in aFile, in aSection, in aKey, 00110 // in aDef, in aDigits ) 00111 // ==> WIEVOR, der zurückzugebene Wert wird jedoch zusätzlich ins 00112 // Intervall [<aMin>..<aMax>] 00113 double _CURVECLASS WINAPI IniReadDouble ( LPCSTR, LPCSTR, LPCSTR, 00114 const double, const UINT ); 00115 00116 00117 // Signatur: IniReadDouble( in aFile, in aSection, in aKey, 00118 // in aMin, in aDef, in aMax, in aDigits ) 00119 // ==> WIEVOR, der zurückzugebene Wert wird jedoch zusätzlich ins 00120 // Intervall [<aMin>..<aMax>] eingepasst 00121 double _CURVECLASS WINAPI IniReadDouble ( LPCSTR, LPCSTR, LPCSTR, 00122 const double, const double, const double, const UINT ); 00123 00124 // Signatur: IniWriteDouble( in aFile, in aSection, in aKey, 00125 // in aDouble, in aDigits ) 00126 // schreibt <aDouble> in die ini-Datei <aFile>, in Sektion <aSection>, Schlüssel <aKey> 00127 // Nach der zu schreibende Wert mehr als <aDigits> Nachkommastellen, werden nachfolgende verworfen.(ABRUNDEN) 00128 // ==> TRUE <--> Wert erfolgreich geschrieben 00129 BOOL _CURVECLASS WINAPI IniWriteDouble ( LPCSTR, LPCSTR, LPCSTR, 00130 const double, const UINT ); 00131 00132 //############################################################################# 00133 // TTxtRead 00134 //############################################################################# 00135 00136 class _CURVECLASS TTxtRead 00137 { 00138 private: 00139 TTxtRead ( TTxtRead& ) {} // kein Copy-Konstruktor 00140 00141 public: 00142 // versucht die Datei zu öffnen und zählt die Zeilen in der Datei 00143 TTxtRead ( const char* ); 00144 00145 virtual ~TTxtRead ( void ); 00146 00147 public: 00148 // beginnt wieder am Anfang der Datei 00149 void Restart(); 00150 00151 // liest die nächste Zeile und gibt sie in <result> zurück 00152 // ==> FALSE <--> Fehler oder Dateiende 00153 BOOL NextLine (string &result); 00154 00155 // WIEVOR, die Zeile wird jedoch per Rückgabewert zurückgegeben ( 0 <--> Fehler oder Dateiende ) 00156 // der zurückgegebene Wert darf nicht freigegeben werden, das erledigt TTxtRead 00157 char *NextLine (); 00158 00159 // ==> TRUE <--> Dateiende erreicht oder Datei nicht vorhanden 00160 BOOL IsEOF (); 00161 00162 // ==> TRUE <--> Datei ist vorhanden 00163 BOOL Exists (); 00164 00165 // ==> Anzahl der Zeilen in dieser Datei; 0 bei leeren oder nicht vorhandenen Dateien 00166 UINT GetLines (); 00167 00168 private: 00169 FILE *m_File; 00170 char *m_Line; 00171 UINT m_Lines; 00172 BOOL m_Eof; 00173 BOOL m_Exists; 00174 }; 00175 00176 #endif //__U_FILES_H 00177 00178 //############################################################################# 00179 // LASTLINE 00180 //#############################################################################

Erzeugt am Sat Nov 13 12:48:11 2004 für XCTL32 von doxygen 1.3.7