home *** CD-ROM | disk | FTP | other *** search
/ Power GUI Programming with VisualAge C++ / powergui.iso / trialva / ibmcppw / include / i0string.hpp < prev    next >
Encoding:
C/C++ Source or Header  |  1996-02-22  |  12.4 KB  |  301 lines

  1.  
  2. #ifndef _I0STRING_
  3. #define _I0STRING_
  4. /*******************************************************************************
  5. * FILE NAME: i0string.hpp                                                      *
  6. *                                                                              *
  7. * DESCRIPTION:                                                                 *
  8. *   This file contains the declarations of the classes:                        *
  9. *     I0String                                                                 *
  10. *                                                                              *
  11. * COPYRIGHT:                                                                   *
  12. *   IBM Open Class Library                                                     *
  13. *   (C) Copyright International Business Machines Corporation 1992, 1996       *
  14. *   Licensed Material - Program-Property of IBM - All Rights Reserved.         *
  15. *   US Government Users Restricted Rights - Use, duplication, or disclosure    *
  16. *   restricted by GSA ADP Schedule Contract with IBM Corp.                     *
  17. *                                                                              *
  18. *******************************************************************************/
  19.  
  20. #include <istring.hpp>
  21.  
  22. #pragma pack(4)
  23.  
  24.  
  25.  
  26. class IStringTest;
  27.  
  28. class I0String : public IString {
  29. public:
  30. /*------------------------------- Constructors -------------------------------*/
  31.   I0String          ( );
  32.   I0String          ( const IString &aString );
  33.  
  34.   I0String          ( int  anInt );
  35.   I0String          ( unsigned  anUnsigned );
  36.   I0String          ( long  aLong );
  37.   I0String          ( unsigned long  anUnsignedLong );
  38. #ifdef _LONG_LONG
  39.   I0String          ( long long  aLongLong );
  40.   I0String          ( unsigned long long  anUnsignedLongLong );
  41. #endif
  42.   I0String          ( short  aShort );
  43.   I0String          ( unsigned short  anUnsignedShort );
  44.  
  45.   I0String          ( double  aDouble );
  46.  
  47.   I0String          ( char aChar );
  48.   I0String          ( unsigned char anUnsignedChar );
  49.   I0String          ( signed char   aSignedChar );
  50.  
  51.   I0String          ( const char *pChar );
  52.   I0String          ( const unsigned char *pUnsignedChar );
  53.   I0String          ( const signed char *pSignedChar );
  54.  
  55.   I0String          ( const void *pBuffer1,
  56.                       unsigned    lenBuffer1,
  57.                       char        padCharacter = ' ' );
  58.   I0String          ( const void *pBuffer1,
  59.                       unsigned    lenBuffer1,
  60.                       const void *pBuffer2,
  61.                       unsigned    lenBuffer2,
  62.                       char        padCharacter = ' ' );
  63.   I0String          ( const void *pBuffer1,
  64.                       unsigned    lenBuffer1,
  65.                       const void *pBuffer2,
  66.                       unsigned    lenBuffer2,
  67.                       const void *pBuffer3,
  68.                       unsigned    lenBuffer3,
  69.                       char        padCharacter = ' ' );
  70. virtual
  71.   ~I0String         ( );
  72.  
  73. /*------------------------- Queries ------------------------------------------*/
  74. I0String
  75.   subString         ( unsigned startPos ) const,
  76.   subString         ( unsigned startPos,
  77.                       unsigned len,
  78.                       char     padCharacter = ' ' ) const;
  79.  
  80. char
  81.  &operator []       ( unsigned index );
  82.  
  83. const char
  84.  &operator []       ( unsigned index ) const;
  85.  
  86. char
  87.  &operator []       ( signed index );
  88.  
  89. const char
  90.  &operator []       ( signed index ) const;
  91.  
  92. char
  93.  &operator []       ( unsigned long index );
  94.  
  95. const char
  96.  &operator []       ( unsigned long index ) const;
  97.  
  98. char
  99.  &operator []       ( signed long index );
  100.  
  101. const char
  102.  &operator []       ( signed long index ) const;
  103.  
  104. IStringEnum::CharType
  105.   charType          ( unsigned index ) const;
  106.  
  107. /*------------------------- Searches -----------------------------------------*/
  108. static const unsigned
  109.   IC_IMPORTB notFound;
  110.  
  111. unsigned
  112.   indexOf           ( const IString     &aString,
  113.                       unsigned           startPos = 0 ) const,
  114.   indexOf           ( const char        *pString,
  115.                       unsigned           startPos = 0 ) const,
  116.   indexOf           ( char               aCharacter,
  117.                       unsigned           startPos = 0 ) const,
  118.   indexOf           ( const IStringTest &aTest,
  119.                       unsigned           startPos = 0 ) const,
  120.  
  121.   indexOfAnyBut     ( const IString     &aString,
  122.                       unsigned           startPos = 0 ) const,
  123.   indexOfAnyBut     ( const char        *pValidChars,
  124.                       unsigned           startPos = 0 ) const,
  125.   indexOfAnyBut     ( char               validChar,
  126.                       unsigned           startPos = 0 ) const,
  127.   indexOfAnyBut     ( const IStringTest &aTest,
  128.                       unsigned           startPos = 0 ) const,
  129.  
  130.   indexOfAnyOf      ( const IString     &searchChars,
  131.                       unsigned           startPos = 0 ) const,
  132.   indexOfAnyOf      ( const char        *pSearchChars,
  133.                       unsigned           startPos = 0 ) const,
  134.   indexOfAnyOf      ( char               searchChar,
  135.                       unsigned           startPos = 0 ) const,
  136.   indexOfAnyOf      ( const IStringTest &aTest,
  137.                       unsigned           startPos = 0 ) const,
  138.  
  139.   lastIndexOf       ( const IString     &aString,
  140.                       unsigned           endPos =
  141.                                           (unsigned)(UINT_MAX-1) ) const,
  142.   lastIndexOf       ( const char        *pString,
  143.                       unsigned           endPos =
  144.                                           (unsigned)(UINT_MAX-1) ) const,
  145.   lastIndexOf       ( char               aCharacter,
  146.                       unsigned           endPos =
  147.                                           (unsigned)(UINT_MAX-1) ) const,
  148.   lastIndexOf       ( const IStringTest &aTest,
  149.                       unsigned           startPos =
  150.                                           (unsigned)(UINT_MAX-1) ) const,
  151.  
  152.   lastIndexOfAnyBut ( const IString     &validChars,
  153.                       unsigned           endPos =
  154.                                           (unsigned)(UINT_MAX-1)) const,
  155.   lastIndexOfAnyBut ( const char        *pValidChars,
  156.                       unsigned           endPos =
  157.                                           (unsigned)(UINT_MAX-1)) const,
  158.   lastIndexOfAnyBut ( char               validChar,
  159.                       unsigned           startPos =
  160.                                           (unsigned)(UINT_MAX-1)) const,
  161.   lastIndexOfAnyBut ( const IStringTest &aTest,
  162.                       unsigned           endPos =
  163.                                           (unsigned)(UINT_MAX-1)) const,
  164.  
  165.   lastIndexOfAnyOf  ( const IString     &searchChars,
  166.                       unsigned           endPos =
  167.                                           (unsigned)(UINT_MAX-1)) const,
  168.   lastIndexOfAnyOf  ( const char        *pSearchChars,
  169.                       unsigned           endPos =
  170.                                           (unsigned)(UINT_MAX-1)) const,
  171.   lastIndexOfAnyOf  ( char               searchChar,
  172.                       unsigned           startPos =
  173.                                           (unsigned)(UINT_MAX-1)) const,
  174.   lastIndexOfAnyOf  ( const IStringTest &aTest,
  175.                       unsigned           endPos =
  176.                                           (unsigned)(UINT_MAX-1)) const,
  177.  
  178.   occurrencesOf     ( const IString     &aString,
  179.                       unsigned           startPos = 0 ) const,
  180.   occurrencesOf     ( const char        *pString,
  181.                       unsigned           startPos = 0 ) const,
  182.   occurrencesOf     ( char               aCharacter,
  183.                       unsigned           startPos = 0 ) const,
  184.   occurrencesOf     ( const IStringTest &aTest,
  185.                       unsigned           startPos = 0 ) const;
  186.  
  187. /*------------------------- Editing ------------------------------------------*/
  188. I0String
  189.  &change            ( const IString &aPattern,
  190.                       const IString &aReplacement,
  191.                       unsigned       startPos = 0,
  192.                       unsigned       numChanges = (unsigned)UINT_MAX ),
  193.  &change            ( const IString &aPattern,
  194.                       const char    *pReplacement,
  195.                       unsigned       startPos = 0,
  196.                       unsigned       numChanges = (unsigned)UINT_MAX ),
  197.  &change            ( const char    *pPattern,
  198.                       const IString &aReplacement,
  199.                       unsigned       startPos = 0,
  200.                       unsigned       numChanges = (unsigned)UINT_MAX ),
  201.  &change            ( const char    *pPattern,
  202.                       const char    *pReplacement,
  203.                       unsigned       startPos = 0,
  204.                       unsigned       numChanges = (unsigned)UINT_MAX ),
  205.  
  206.  &insert            ( const IString &aString,
  207.                       unsigned       index = (unsigned)UINT_MAX,
  208.                       char           padCharacter = ' ' ),
  209.  &insert            ( const char    *pString,
  210.                       unsigned       index = (unsigned)UINT_MAX,
  211.                       char           padCharacter = ' ' ),
  212.  
  213.  &overlayWith       ( const IString &aString,
  214.                       unsigned       index        = 0,
  215.                       char           padCharacter = ' ' ),
  216.  &overlayWith       ( const char    *pString,
  217.                       unsigned       index        = 0,
  218.                       char           padCharacter = ' ' ),
  219.  
  220.  &remove            ( unsigned startPos ),
  221.  &remove            ( unsigned startPos,
  222.                       unsigned numChars );
  223.  
  224. static I0String
  225.   change            ( const IString &aString,
  226.                       const IString &inputString,
  227.                       const IString &outputString,
  228.                       unsigned       startPos = 0,
  229.                       unsigned       numChanges = (unsigned)UINT_MAX ),
  230.   change            ( const IString &aString,
  231.                       const IString &inputString,
  232.                       const char    *pOutputString,
  233.                       unsigned       startPos = 0,
  234.                       unsigned       numChanges = (unsigned)UINT_MAX ),
  235.   change            ( const IString &aString,
  236.                       const char    *pInputString,
  237.                       const IString &outputString,
  238.                       unsigned       startPos = 0,
  239.                       unsigned       numChanges = (unsigned)UINT_MAX ),
  240.   change            ( const IString &aString,
  241.                       const char    *pInputString,
  242.                       const char    *pOutputString,
  243.                       unsigned       startPos = 0,
  244.                       unsigned       numChanges = (unsigned)UINT_MAX ),
  245.  
  246.   insert            ( const IString &aString,
  247.                       const IString &anInsert,
  248.                       unsigned       index = (unsigned)UINT_MAX,
  249.                       char           padCharacter = ' ' ),
  250.   insert            ( const IString &aString,
  251.                       const char    *pInsert,
  252.                       unsigned       index = (unsigned)UINT_MAX,
  253.                       char           padCharacter = ' ' ),
  254.  
  255.   overlayWith       ( const IString &aString,
  256.                       const IString &anOverlay,
  257.                       unsigned       index        = 0,
  258.                       char           padCharacter = ' ' ),
  259.   overlayWith       ( const IString &aString,
  260.                       const char    *pOverlay,
  261.                       unsigned       index        = 0,
  262.                       char           padCharacter = ' ' ),
  263.  
  264.   remove            ( const IString &aString,
  265.                       unsigned       startPos ),
  266.   remove            ( const IString &aString,
  267.                       unsigned       startPos,
  268.                       unsigned       numChars );
  269.  
  270. /*------------------------- Word Operations ----------------------------------*/
  271. unsigned
  272.   indexOfPhrase     ( const IString &wordString,
  273.                       unsigned       startWord = 1 ) const,
  274.   indexOfWord       ( unsigned wordNumber ) const;
  275.  
  276. protected:
  277. /*------------------------- Index Mapping ------------------------------------*/
  278. static unsigned
  279.   adjustArg         ( unsigned index ),
  280.   adjustResult      ( unsigned index );
  281. static signed
  282.   adjustArg         ( signed index ),
  283.   adjustResult      ( signed index );
  284.  
  285. private:
  286.  
  287.  
  288.  
  289.  
  290. }; // class I0String
  291.  
  292.  
  293.  
  294. #pragma pack()
  295.  
  296.   #include <i0string.inl>
  297.  
  298. #endif /* _I0STRING_ */
  299.  
  300.  
  301.