/***********************************************************************************/ /** \file StringHelper.cpp ** \brief Implementation zur Klasse StringHelper ************************************************************************************* ** Autor: Christian Roesch ************************************************************************************* ** -tut nichts- ** *//*********************************************************************************/ // includes #ifdef EXTRACODE #include "StringHelper.h" #include std::vector< char > FrameWork::StringHelper::m_SpaceTab; FrameWork::StringHelper::StringHelperPreparer FrameWork::StringHelper::m_shpDummy; // Methoden-Definitionen namespace FrameWork { /***********************************************************************************/ /** Schneidet einen String an den Separatoren auseinander. Der vorderste Teil wird *** abgeschnitten, falls der Separator gefunden wird. Der Eingabestring wird auf den *** Teil hinter dem Seperator gestutzt *** *** \param strInput [in\out] Ursprungsstring *** \param strSeperator Seperator *** \param der vorne abgeschnittene Teil *** *** \return true, wenn Seperator gefunden *//*********************************************************************************/ bool StringHelper::splitAt( std::string& strInput, std::string strSeperator, std::string& strOutput ) { size_t tStart= strInput.find( strSeperator ); if( tStart == std::string::npos ) { return false; } strOutput= strInput.substr( 0, tStart ); strInput= strInput.substr( tStart + strSeperator.size() ); return true; } bool StringHelper::trimFront( std::string& strData, char cWhiteSpace ) { int i= 0; if( (int)strData.size() == 0 ) { return false; } while( strData[ i ] == cWhiteSpace ) { i++; } if( i > 0 ) { strData= strData.substr( i ); return true; } return false; } bool StringHelper::trimBack( std::string& strData, char cWhiteSpace ) { int i= (int)strData.size() - 1; if( i == -1 ) { return false; } while( strData[ i ] == cWhiteSpace ) { i--; } if( i < (int)strData.size() - 1 ) { strData= strData.substr( 0, i + 1 ); return true; } return false; } bool StringHelper::trim( std::string& strData, char cWhiteSpace ) { bool bTrimmed= trimFront( strData, cWhiteSpace ); bTrimmed|= trimBack( strData, cWhiteSpace ); return bTrimmed; } bool StringHelper::trimFront( std::string& strData, std::vector< char >& WhiteSpaces ) { bool bTrimmed; do { bTrimmed= false; for( int i= 0; i < (int)WhiteSpaces.size(); ++i ) { bTrimmed|= trimFront( strData, WhiteSpaces[ i ] ); } } while( bTrimmed ); return bTrimmed; } bool StringHelper::trimBack( std::string& strData, std::vector< char >& WhiteSpaces ) { bool bTrimmed; do { bTrimmed= false; for( int i= 0; i < (int)WhiteSpaces.size(); ++i ) { bTrimmed|= trimBack( strData, WhiteSpaces[ i ] ); } } while( bTrimmed ); return bTrimmed; } bool StringHelper::trim( std::string& strData, std::vector< char >& WhiteSpaces ) { bool bTrimmed= trimFront( strData, WhiteSpaces ); bTrimmed|= trimBack( strData, WhiteSpaces ); return bTrimmed; } std::vector< char >& StringHelper::getSpaceTab() { return m_SpaceTab; } void StringHelper::toUpper( std::string& strData ) { for( int i= 0; i < (int)strData.size(); ++i ) { strData[ i ]= toupper( strData[ i ] ); } } int StringHelper::searchAndRreplace( const std::string &strSearchString, const std::string &strReplaceString, std::string& strData ) { int iRet= 0; std::string::size_type pos = strData.find(strSearchString, 0); int intLengthSearch = strSearchString.length(); while(std::string::npos != pos) { iRet++; strData.replace(pos, intLengthSearch, strReplaceString); pos = strData.find(strSearchString, pos + intLengthSearch); } return iRet; } } #endif /************************************************************************************ ** Ende der Datei: StringHelper.cpp ************************************************************************************/