01.03.2011 - as a initial commit
This commit is contained in:
37
pistring.h
37
pistring.h
@@ -1,7 +1,9 @@
|
||||
#ifndef PISTRING_H
|
||||
#define PISTRING_H
|
||||
|
||||
#include "piincludes.h"
|
||||
#include "pibytearray.h"
|
||||
|
||||
class PIStringList;
|
||||
|
||||
class PIString: public PIVector<char>
|
||||
{
|
||||
@@ -11,6 +13,7 @@ public:
|
||||
PIString(const char * str) {*this += str;}
|
||||
PIString(const string & str) {*this += str;}
|
||||
PIString(const PIString & str) {*this += str;}
|
||||
PIString(const PIByteArray & ba) {*this += ba;}
|
||||
PIString(const int len, const char c = ' ') {for (int i = 0; i < len; ++i) push_back(c);}
|
||||
|
||||
operator const char*() {return data();}
|
||||
@@ -19,21 +22,25 @@ public:
|
||||
inline const char operator [](const int pos) const {return at(pos);}
|
||||
|
||||
PIString & operator +=(const PIString & str);
|
||||
PIString & operator +=(const PIByteArray & ba);
|
||||
inline PIString & operator +=(const char & c) {push_back(c); return *this;}
|
||||
PIString & operator +=(const char * str);
|
||||
PIString & operator +=(const string & str);
|
||||
|
||||
bool operator ==(const PIString & str) const;
|
||||
inline bool operator ==(const PIByteArray & ba) const {return *this == PIString(ba);}
|
||||
inline bool operator ==(const char & c) const {return *this == PIString(c);}
|
||||
inline bool operator ==(const char * str) const {return *this == PIString(str);}
|
||||
inline bool operator ==(const string & str) const {return *this == PIString(str);}
|
||||
|
||||
bool operator !=(const PIString & str) const;
|
||||
inline bool operator !=(const PIByteArray & ba) const {return *this != PIString(ba);}
|
||||
inline bool operator !=(const char & c) const {return *this != PIString(c);}
|
||||
inline bool operator !=(const char * str) const {return *this != PIString(str);}
|
||||
inline bool operator !=(const string & str) const {return *this != PIString(str);}
|
||||
|
||||
PIString & operator <<(const PIString & str) {*this += str; return *this;}
|
||||
inline PIString & operator <<(const PIString & str) {*this += str; return *this;}
|
||||
inline PIString & operator <<(const PIByteArray & ba) {*this += ba; return *this;}
|
||||
inline PIString & operator <<(const char & c) {*this += c; return *this;}
|
||||
inline PIString & operator <<(const char * str) {*this += str; return *this;}
|
||||
inline PIString & operator <<(const string & str) {*this += str; return *this;}
|
||||
@@ -53,6 +60,7 @@ public:
|
||||
PIString & trim();
|
||||
const char * data() const {return stdString().c_str();}
|
||||
string stdString() const {return (size() == 0) ? string() : string(&at(0), size());}
|
||||
PIStringList split(const PIString & delim);
|
||||
|
||||
PIString toUpperCase() const;
|
||||
PIString toLowerCase() const;
|
||||
@@ -74,6 +82,7 @@ public:
|
||||
long toLong() const {return atol(data());}
|
||||
float toFloat() const {return (float)atof(data());}
|
||||
double toDouble() const {return atof(data());}
|
||||
inline PIByteArray toBase64() {return PIByteArray(data(), size()).toBase64();}
|
||||
|
||||
inline PIString & setNumber(const int value) {clear(); *this += itos(value); return *this;}
|
||||
inline PIString & setNumber(const short value) {clear(); *this += itos(value); return *this;}
|
||||
@@ -82,6 +91,7 @@ public:
|
||||
inline PIString & setNumber(const double value) {clear(); *this += dtos(value); return *this;}
|
||||
|
||||
inline static PIString fromNumber(const int value) {return PIString(itos(value));}
|
||||
inline static PIString fromNumber(const uint value) {return PIString(itos(value));}
|
||||
inline static PIString fromNumber(const short value) {return PIString(itos(value));}
|
||||
inline static PIString fromNumber(const long value) {return PIString(ltos(value));}
|
||||
inline static PIString fromNumber(const float value) {return PIString(ftos(value));}
|
||||
@@ -91,10 +101,12 @@ public:
|
||||
|
||||
inline PIString operator +(const PIString & str, const PIString & f) {PIString s(str); s += f; return s;}
|
||||
|
||||
inline PIString operator +(const PIString & f, const PIByteArray & ba) {PIString s(f); s += ba; return s;}
|
||||
inline PIString operator +(const PIString & f, const char & c) {PIString s(f); s.push_back(c); return s;}
|
||||
inline PIString operator +(const PIString & f, const char * str) {PIString s(f); s += str; return s;}
|
||||
inline PIString operator +(const PIString & f, const string & str) {PIString s(f); s += str; return s;}
|
||||
|
||||
inline PIString operator +(const PIByteArray & ba, const PIString & f) {return PIString(ba) + f;}
|
||||
inline PIString operator +(const char & c, const PIString & f) {return PIString(c) + f;}
|
||||
inline PIString operator +(const char * str, const PIString & f) {return PIString(str) + f;}
|
||||
inline PIString operator +(const string & str, const PIString & f) {return PIString(str) + f;}
|
||||
@@ -102,4 +114,25 @@ inline PIString operator +(const string & str, const PIString & f) {return PIStr
|
||||
char chrUpr(char c);
|
||||
char chrLwr(char c);
|
||||
|
||||
class PIStringList: public PIVector<PIString>
|
||||
{
|
||||
public:
|
||||
PIStringList() {;}
|
||||
PIStringList(const PIString & str) {push_back(str);}
|
||||
|
||||
inline PIString join(const PIString & delim) const {PIString s; for (uint i = 0; i < size(); ++i) {s += at(i); if (i < size() - 1) s += delim;} return s;}
|
||||
|
||||
inline PIStringList & operator <<(const PIString & str) {push_back(str); return *this;}
|
||||
inline PIStringList & operator <<(const PIByteArray & ba) {push_back(ba); return *this;}
|
||||
inline PIStringList & operator <<(const char & c) {push_back(PIString(c)); return *this;}
|
||||
inline PIStringList & operator <<(const char * str) {push_back(PIString(str)); return *this;}
|
||||
inline PIStringList & operator <<(const string & str) {push_back(str); return *this;}
|
||||
inline PIStringList & operator <<(const int & num) {push_back(PIString::fromNumber(num)); return *this;}
|
||||
inline PIStringList & operator <<(const short & num) {push_back(PIString::fromNumber(num)); return *this;}
|
||||
inline PIStringList & operator <<(const long & num) {push_back(PIString::fromNumber(num)); return *this;}
|
||||
inline PIStringList & operator <<(const float & num) {push_back(PIString::fromNumber(num)); return *this;}
|
||||
inline PIStringList & operator <<(const double & num) {push_back(PIString::fromNumber(num)); return *this;}
|
||||
|
||||
};
|
||||
|
||||
#endif // PISTRING_H
|
||||
|
||||
Reference in New Issue
Block a user