00001
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef NLGEORGES_STRING_EX_H
00027 #define NLGEORGES_STRING_EX_H
00028
00029 #include "nel/misc/stream.h"
00030
00031 namespace NLGEORGES
00032 {
00033
00034 class CStringEx : public std::basic_string<char, std::char_traits<char>, std::allocator<char> >
00035 {
00036
00037 public:
00038 CStringEx() : std::basic_string<char, std::char_traits<char>, std::allocator<char> >() {;}
00039 CStringEx( char* _pc ) : std::basic_string<char, std::char_traits<char>, std::allocator<char> >( (char *)_pc ) {};
00040 CStringEx( std::string _s ) : std::basic_string<char, std::char_traits<char>, std::allocator<char> >( (std::string)_s) {};
00041 CStringEx( const char _c, int _i ) { append( _i, _c ); }
00042
00043 virtual ~CStringEx();
00044 CStringEx get_remove() const;
00045 CStringEx get_remove( const char ) const;
00046 CStringEx get_make_lower() const;
00047 CStringEx get_make_upper() const;
00048 CStringEx get_trim_left() const;
00049 CStringEx get_trim_left( const char _c ) const;
00050 CStringEx get_trim_right() const;
00051 CStringEx get_trim_right( const char _c ) const;
00052 CStringEx get_trim() const;
00053 CStringEx get_trim( const char _c ) const;
00054 CStringEx get_mid( const int nFirst, const int nCount ) const;
00055 CStringEx get_mid( const int nFirst ) const;
00056 CStringEx get_left( const int nCount ) const;
00057 CStringEx get_right( const int nCount ) const;
00058 CStringEx get_purge() const;
00059
00060 void remove();
00061 void remove( const char _c );
00062 void make_lower();
00063 void make_upper();
00064 void trim_left();
00065 void trim_left( const char _c );
00066 void trim_right();
00067 void trim_right( const char _c );
00068 void trim();
00069 void trim( const char _c );
00070 void mid( const int nFirst, const int nCount );
00071 void mid( const int nFirst );
00072 void left( const int nCount );
00073 void right( const int nCount );
00074 void purge();
00075
00076 void format( const char*, ... );
00077 int reverse_find( const char _c ) const;
00078
00079 void serial( NLMISC::IStream& s ) { s.serial( (std::string&)(*this) );}
00080
00081 bool operator <= ( const CStringEx& s ) const;
00082 bool operator < ( const CStringEx& s ) const;
00083 };
00084
00085 }
00086
00087 #endif // NLGEORGES_STRING_EX_H