Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 7474 in orxonox.OLD for trunk/src/lib/util/substring.h


Ignore:
Timestamp:
May 2, 2006, 6:24:43 PM (18 years ago)
Author:
bensch
Message:

orxonox/trunk: SubString::split algorithm revisited: now it Splits Strings where Delimitters are, but it ereases the Neighbours of those delimiters, if you want it
also there is now a way to have empty Entries.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/lib/util/substring.h

    r7398 r7474  
    1010#include <string>
    1111
    12 typedef enum {
    13   SL_NORMAL,
    14   SL_ESCAPE,
    15   SL_SAFEMODE,
    16   SL_SAFEESCAPE,
    17   SL_COMMENT,
    18 } SPLIT_LINE_STATE;
    1912
    2013//! A class that can load one string and split it in multipe ones
     
    2619{
    2720public:
     21  typedef enum {
     22    SL_NORMAL,
     23    SL_ESCAPE,
     24    SL_SAFEMODE,
     25    SL_SAFEESCAPE,
     26    SL_COMMENT,
     27  } SPLIT_LINE_STATE;
     28
     29
     30public:
    2831  SubString();
    29   SubString(const std::string& string, char splitter = ',');
    30   SubString(const std::string& string, const std::string& splitters, char escapeChar ='\\', char safemode_char = '"', char comment_char = '\0');
     32  SubString(const std::string& string, char delimiter = ',');
     33  SubString(const std::string& string,
     34            const std::string& delimiters, const std::string& delimiterNeighbours = "", bool emptyEntries=false,
     35            char escapeChar ='\\', char safemode_char = '"', char comment_char = '\0');
    3136  /** @brief create a Substring as a copy of another one. @param subString the SubString to copy. */
    3237  SubString(const SubString& subString) { *this = subString; };
     
    4752  /////////////////////////////////////////
    4853  // Split and Join the any String. ///////
    49   unsigned int split(const std::string& string = "", char splitter = ',');
    50   unsigned int split(const std::string& string, const std::string& splitters, char escapeChar ='\\', char safemode_char = '"', char comment_char = '\0');
     54  unsigned int split(const std::string& string = "", char delimiter = ',');
     55  unsigned int split(const std::string& string,
     56                     const std::string& delimiters, const std::string& delimiterNeighbours = "", bool emptyEntries = false,
     57                     char escapeChar ='\\', char safemode_char = '"', char comment_char = '\0');
    5158  std::string join(const std::string& delimiter = " ") const;
    5259  ////////////////////////////////////////
     
    6269  inline unsigned int size() const { return this->strings.size(); };
    6370  /** @param i the i'th String @returns the i'th string from the subset of Strings */
    64   const std::string& operator[](unsigned int i) const { return (i < this->strings.size()) ? this->strings[i] : emptyString;return this->getString(i); };
     71const std::string& operator[](unsigned int i) const { return (i < this->strings.size()) ? this->strings[i] : emptyString;return this->getString(i); };
    6572  /** @param i the i'th String @returns the i'th string from the subset of Strings */
    6673  const std::string& getString(unsigned int i) const { return (*this)[i]; };
     
    7077                                    const std::string& line,
    7178                                    const std::string& delimiters = SubString::WhiteSpaces,
     79                                    const std::string& delimiterNeighbours = "",
     80                                    bool emptyEntries = false,
    7281                                    char escape_char = '\\',
    7382                                    char safemode_char = '"',
Note: See TracChangeset for help on using the changeset viewer.