00001 #ifndef __CSystemString__ 00002 #define __CSystemString__ 00003 00004 #include "CString.hpp" 00005 #include "CStringTokeniser.hpp" 00006 00007 // =========================================================================== 00008 00009 using Exponent::Basics::CString; 00010 using Exponent::Basics::CStringTokeniser; 00011 00012 // =========================================================================== 00013 00014 namespace Exponent 00015 { 00016 namespace Basics 00017 { 00040 class CSystemString : public CString 00041 { 00043 EXPONENT_CLASS_DECLARATION; 00046 // =========================================================================== 00047 00048 public: 00049 00050 // =========================================================================== 00051 00052 const static char *CSYSTEM_STRING_SYSTEM_SEPERATOR; 00053 const static long CSYSTEM_STRING_MAX_PATH = _MAX_PATH; 00055 // =========================================================================== 00056 00061 CSystemString(const char *string = " "); 00062 00067 CSystemString(const CString &string); 00068 00073 CSystemString(const CSystemString &string); 00074 00078 virtual ~CSystemString(); 00079 00080 // =========================================================================== 00081 00087 virtual CSystemString &operator = (const CSystemString &string); 00088 00094 virtual CSystemString &operator = (const char *string); 00095 00101 virtual CSystemString &operator += (const CString &string); 00102 00108 virtual CSystemString &operator += (const char *string); 00109 00115 virtual bool operator == (const char *equals); 00116 00122 virtual bool operator == (CSystemString &string); 00123 00129 virtual bool operator != (const char *string); 00130 00136 virtual bool operator != (CSystemString &string); 00137 00142 virtual bool operator ! (); 00143 00149 virtual char operator [] (const long index); 00150 00151 // =========================================================================== 00152 00157 virtual bool hasExtension() const; 00158 00164 virtual bool hasExtension(const char *ext) const; 00165 00171 virtual bool hasExtension(const CString &ext) const; 00172 00178 virtual void appendNewExtension(const char *ext, const bool removeOld = true); 00179 00185 virtual void appendNewExtension(const CString &ext, const bool removeOld = true); 00186 00190 virtual void removeExtension(); 00191 00196 virtual bool isFolder() const; 00197 00201 virtual void stripFilename(); 00202 00207 virtual CString getFolderPath(); 00208 00212 virtual void appendSystemSeperator(); 00213 00218 virtual void appendPath(const CString &path); 00219 00225 virtual CString getDriveLetter(bool withDriveSeperators = true); 00226 00231 virtual CString getTheExtension(); 00232 00237 virtual CString getTheFilename() const; 00238 00243 virtual long getNumberOfPathComponents(); 00244 00250 virtual CString *getPathComponent(const long index); 00251 00255 virtual void removeLastPathComponent(); 00256 00260 virtual void removeFirstPathComponent(); 00261 00265 virtual void replacePathSeperators(); 00266 00267 #ifndef WIN32 00268 00272 FSSpec *getStringAsFSSpec() const; 00273 00278 FSRef *getStringAsFSRef() const; 00279 #endif 00280 00281 // =========================================================================== 00282 }; 00283 } 00284 } 00285 #endif // End of CSystemString.hpp