00001 #ifndef __J2K__JString_At_INL__
00002 #define __J2K__JString_At_INL__
00003
00004 #include <j2k/Fred/String/String.hpp>
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 inline char JString::operator[](long index) const {
00020 if ( index < 0 ) return (char)NULL;
00021 return getAt( (size_t)index );
00022 }
00023
00024 inline char JString::getAt( size_t index ) const {
00025 if ( (long)index == -1 ) return (char)NULL;
00026 if ( index >= pData->length ) {
00027 return (char)NULL;
00028 }
00029
00030 return pData->data[ index ];
00031 }
00032
00033 inline JString JString::at() { return JString( *this ); }
00034
00035 inline JString JString::at( const char* s) { return at( s, 0 ); }
00036 inline JString JString::at( const JString& S) { return at( S.pData->data, 0 ); }
00037
00038 inline JString JString::at( const JString& S, size_t startpos ) {
00039 return at( S.pData->data, startpos );
00040 }
00041
00042 inline JString JString::at( const JString& S, size_t startpos, size_t length ) {
00043 return at( S.pData->data, startpos, length );
00044 }
00045
00046 inline JString JString::right( size_t length ) {
00047 return at( pData->length - length, length );
00048 }
00049
00050 inline JString JString::left( size_t length ) {
00051 return at( (size_t)0, length );
00052 }
00053
00054 inline JString JString::mid( const JString& S, size_t startpos, size_t length ) {
00055 return at( S.pData->data, startpos, length );
00056 }
00057
00058 inline JString JString::mid( const char* s, size_t startpos, size_t length ) {
00059 return at( s, startpos, length );
00060 }
00061
00062 inline JString JString::ltrim( char ch ) const {
00063
00064
00065 for( size_t l = 0; l < pData->length; l++ ) {
00066 if ( pData->data[l] == ch ) return JString( pData->data+l );
00067 }
00068 return JString();
00069 }
00070
00071
00072
00073
00074 inline JString JString::operator()( size_t startpos, size_t length ) {
00075 return at( startpos, length );
00076 }
00077
00078 inline JString JString::operator()( size_t startpos ) { return at( startpos ); }
00079 inline JString JString::operator()( const char* s ) { return at( s, 0 ); }
00080 inline JString JString::operator()( const JString& S ) { return at( S.pData->data, 0 ); }
00081
00082 inline JString JString::operator()( const char* s, size_t startpos ) {
00083 return at( s, startpos );
00084 }
00085
00086 inline JString JString::operator()( const JString& S, size_t startpos ) {
00087 return at( S.pData->data, startpos );
00088 }
00089
00090 inline JString JString::operator()( const char* s, size_t startpos, size_t length ) {
00091 return at( s, startpos, length );
00092 }
00093
00094 inline JString JString::operator()( const JString& S, size_t startpos, size_t length ) {
00095 return at( S.pData->data, startpos, length );
00096 }
00097
00098 #endif