home *** CD-ROM | disk | FTP | other *** search
/ Stone Design / Stone Design.iso / Stone_Friends / NeXT-Icons / next-icon@gun.com / Apps / ImagePortfolio / apputils.subproj / ParseString.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-06-03  |  2.5 KB  |  57 lines

  1. // -----------------------------------------------------------------------------------------
  2. // general string/table functions
  3. // -----------------------------------------------------------------------------------------
  4.  
  5. class ParseString {
  6.  
  7.     int                instanceId;                                // unique debug id
  8.     char            *parseList;                                // char buffer
  9.     char            **parseTable;                            // parsed table
  10.  
  11. public:
  12.  
  13.     /* constructors */
  14.     ParseString();                                            // "empty" constructor
  15.     ParseString(const ParseString &other);                    // "copy" constructor
  16.     ParseString(const char *list);                            // init from list
  17.     ParseString(const char *list1, const char *list2);        // init from 2 lists
  18.     
  19.     /* destructor: should always be declared "virtual" */
  20.     virtual ~ParseString();
  21.  
  22.     ParseString &operator<<=(const char *fileName);            // copy fro file
  23.     ParseString &operator=(const ParseString &other);        // copy from other
  24.     ParseString &operator=(const char *list);                // copy from string
  25.     ParseString &operator+=(const ParseString &second);        // append other to self
  26.     ParseString &operator+=(const char *list);                // append list to self
  27.     ParseString operator+(const ParseString &second) const;    // append to second
  28.     ParseString operator+(const char *list) const;            // append to list
  29.     ParseString &operator|=(const ParseString &second);        // merge second with self
  30.     ParseString &operator|=(const char *list);                // merge list with self
  31.     ParseString operator|(const ParseString &second) const;    // merge with second
  32.     ParseString operator|(const char *list) const;            // merge with list
  33.     char * &operator[](int ndx) const;                        // reference item in table
  34.     int operator()(const char *item) const;                // return index to item
  35.  
  36.     void print() const;                                        // print contents
  37.     char **table() const;                                    // return pointer to table
  38.     int count() const;                                        // return number of items
  39.     int unparsedLength() const;                                // return length of list
  40.     char *getUnparsedList(char *list, int listLen) const;    // copy unparsed list into buffer
  41.     char *newUnparsedList() const;                            // return new unparsed list
  42.     char *entryAt(int ndx) const;                            // return item at index
  43.     int indexTo(const char *entry) const;                    // return index to item
  44.  
  45.     virtual int _sortCompare(char *p, char *q) const;        // sorting criteria
  46.     int sort(int order = 0);                                // sort table (0 == ascending)
  47.  
  48. private:
  49.  
  50.     void _clean();
  51.     char *_concatLists(const char *list1, const char *list2);
  52.     char ** _parseList(char *list);
  53.     int _unparsedLength(const char **tbl) const;
  54.     char *_unparseList(char **tbl, char *list, int listLen) const;
  55.     char *_newUnparsedList(char **tbl) const;
  56.  
  57. };