Logo Search packages:      
Sourcecode: pwlib version File versions  Download package

Protected Member Functions | Private Member Functions

PString Class Reference

#include <pstring.h>

Inheritance diagram for PString:
Inheritance graph

List of all members.

Public Member Functions

Overrides from class PObject
virtual PObjectClone () const
virtual Comparison Compare (const PObject &obj) const
virtual void PrintOn (ostream &strm) const
virtual void ReadFrom (istream &strm)
virtual PINDEX HashFunction () const
Overrides from class PContainer
virtual BOOL SetSize (PINDEX newSize)
virtual BOOL IsEmpty () const
virtual BOOL MakeUnique ()
Size/Length functions
BOOL MakeMinimumSize ()
PINLINE PINDEX GetLength () const
bool operator! () const
Comparison operators
bool operator*= (const PString &str) const
bool operator== (const PObject &str) const
bool operator!= (const PObject &str) const
bool operator< (const PObject &str) const
bool operator> (const PObject &str) const
bool operator<= (const PObject &str) const
bool operator>= (const PObject &str) const
bool operator*= (const char *cstr) const
bool operator== (const char *cstr) const
bool operator!= (const char *cstr) const
bool operator< (const char *cstr) const
bool operator> (const char *cstr) const
bool operator<= (const char *cstr) const
bool operator>= (const char *cstr) const
Comparison NumCompare (const PString &str, PINDEX count=P_MAX_INDEX, PINDEX offset=0) const
Comparison NumCompare (const char *cstr, PINDEX count=P_MAX_INDEX, PINDEX offset=0) const
Search & replace functions
PINDEX Find (char ch, PINDEX offset=0) const
PINDEX Find (const PString &str, PINDEX offset=0) const
PINDEX Find (const char *cstr, PINDEX offset=0) const
PINDEX FindLast (char ch, PINDEX offset=P_MAX_INDEX) const
PINDEX FindLast (const PString &str, PINDEX offset=P_MAX_INDEX) const
PINDEX FindLast (const char *cstr, PINDEX offset=P_MAX_INDEX) const
PINDEX FindOneOf (const PString &set, PINDEX offset=0) const
PINDEX FindOneOf (const char *cset, PINDEX offset=0) const
PINDEX FindRegEx (const PRegularExpression &regex, PINDEX offset=0) const
BOOL FindRegEx (const PRegularExpression &regex, PINDEX &pos, PINDEX &len, PINDEX offset=0, PINDEX maxPos=P_MAX_INDEX) const
void Replace (const PString &target, const PString &subs, BOOL all=FALSE, PINDEX offset=0)
void Splice (const PString &str, PINDEX pos, PINDEX len=0)
void Splice (const char *cstr, PINDEX pos, PINDEX len=0)
void Delete (PINDEX start, PINDEX len)
Sub-string functions
PString operator() (PINDEX start, PINDEX end) const
PString Left (PINDEX len) const
PString Right (PINDEX len) const
PString Mid (PINDEX start, PINDEX len=P_MAX_INDEX) const
PString LeftTrim () const
PString RightTrim () const
PString Trim () const
PString ToLower () const
PString ToUpper () const
PStringArray Tokenise (const PString &separators, BOOL onePerSeparator=TRUE) const
PStringArray Tokenise (const char *cseparators, BOOL onePerSeparator=TRUE) const
PStringArray Lines () const

Protected Member Functions

virtual Comparison InternalCompare (PINDEX offset, char c) const
virtual Comparison InternalCompare (PINDEX offset, PINDEX length, const char *cstr) const
void InternalFromUCS2 (const WORD *ptr, PINDEX len)
 PString (int dummy, const PString *str)

Private Member Functions

 PCLASSINFO (PString, PCharArray)


enum  ConversionType {
  Pascal, Basic, Literal, Signed,
  Unsigned, Decimal, Exponent, Printf,
PINLINE PString ()
PINLINE PString (const PString &str)
PINLINE PString (const std::string &str)
 PString (const char *cstr)
 PString (const WORD *ustr)
 PString (const char *cstr, PINDEX len)
 PString (const WORD *ustr, PINDEX len)
 PString (const PWORDArray &ustr)
 PString (char ch)
 PString (short n)
 PString (unsigned short n)
 PString (int n)
 PString (unsigned int n)
 PString (long n)
 PString (unsigned long n)
 PString (PInt64 n)
 PString (PUInt64 n)
 PString (ConversionType type, const char *str,...)
 PString (ConversionType type, long value, unsigned base=10)
 PString (ConversionType type, double value, unsigned places)
PStringoperator= (const PString &str)
PStringoperator= (const char *cstr)
PStringoperator= (char ch)
PStringoperator= (short n)
PStringoperator= (unsigned short n)
PStringoperator= (int n)
PStringoperator= (unsigned int n)
PStringoperator= (long n)
PStringoperator= (unsigned long n)
PStringoperator= (PInt64 n)
PStringoperator= (PUInt64 n)
virtual PStringMakeEmpty ()
static PString Empty ()

Concatenation operators

PString operator+ (const PString &str) const
PString operator+ (const char *cstr) const
PString operator+ (char ch) const
PStringoperator+= (const PString &str)
PStringoperator+= (const char *cstr)
PStringoperator+= (char ch)
PString operator& (const PString &str) const
PString operator& (const char *cstr) const
PString operator& (char ch) const
PStringoperator&= (const PString &str)
PStringoperator&= (const char *cstr)
PStringoperator&= (char ch)
PString operator+ (const char *cstr, const PString &str)
PString operator+ (char c, const PString &str)
PString operator& (const char *cstr, const PString &str)
PString operator& (char ch, const PString &str)

Conversion functions

PStringsprintf (const char *cfmt,...)
PStringvsprintf (const PString &fmt, va_list args)
PStringvsprintf (const char *cfmt, va_list args)
long AsInteger (unsigned base=10) const
DWORD AsUnsigned (unsigned base=10) const
PInt64 AsInt64 (unsigned base=10) const
PUInt64 AsUnsigned64 (unsigned base=10) const
double AsReal () const
PWORDArray AsUCS2 () const
PBYTEArray ToPascal () const
PString ToLiteral () const
 operator const unsigned char * () const
PString psprintf (const char *cfmt,...)
PString pvsprintf (const char *cfmt, va_list args)
PString pvsprintf (const PString &fmt, va_list args)

Detailed Description

The character string class. It supports a wealth of additional functions for string processing and conversion. Operators are provided so that strings can virtually be treated as a basic type.

An important feature of the string class, which is not present in other container classes, is that when the string contents is changed, that is resized or elements set, the string is "dereferenced", and a duplicate made of its contents. That is this instance of the array is disconnected from all other references to the string data, if any, and a new string array contents created. For example consider the following: {verbatim} PString s1 = "String"; // New array allocated and set to "String" PString s2 = s1; // s2 has pointer to same array as s1 and reference count is 2 for both s1[0] = 's'; // Breaks references into different strings {verbatim} at the end s1 is "string" and s2 is "String" both with reference count of 1.

The functions that will "break" a reference are SetSize()#, SetMinSize()#, GetPointer()#, SetAt()# and operator[]#.

Note that the array is a '\0' terminated string as in C strings. Thus the memory allocated, and the length of the string may be different values.

Also note that the PString is inherently an 8 bit string. The character set is not defined for most operations and it may be any 8 bit character set. However when conversions are being made to or from 2 byte formats then the PString is assumed to be the UTF-8 format. The 2 byte format is nominally UCS-2 (aka BMP string) and while it is not exactly the same as UNICODE they are compatible enough for them to be treated the same for most real world usage.

Definition at line 376 of file pstring.h.

The documentation for this class was generated from the following files:

Generated by  Doxygen 1.6.0   Back to index