PhoenixInkscape  2.0.0
Generate multiple png files with svg inkscape files
PString.h
Go to the documentation of this file.
1 /***************************************
2  Auteur : Pierre Aubert
3  Mail : pierre.aubert@lapp.in2p3.fr
4  Licence : CeCILL-C
5 ****************************************/
6 
7 #ifndef __PSTRING_H__
8 #define __PSTRING_H__
9 
10 #include <string.h>
11 #include <string>
12 #include <iostream>
13 #include <vector>
14 
16 class PString : public std::string{
17  public:
18  PString();
19  PString(const char * str);
20  PString(const std::string & str);
21  PString(const PString & other);
22  virtual ~PString();
23 
24  template<typename T>
25  static PString toString(const T & value);
26  template<typename T>
27  static T toValue(const PString & other);
28 
29  template<typename T>
30  PString & fromValue(const T & other);
31  template<typename T>
32  T toValue() const;
33 
34  PString & operator = (const PString & other);
35  PString & operator = (const std::string & other);
36  template<typename T>
37  PString & operator = (const T & other);
38 
39  PString & operator += (const PString & other);
40  PString & operator += (const std::string & other);
41  PString & operator += (char ch);
42 
43  PString & add(const PString & other);
44  PString & add(const std::string & other);
45  PString & add(char ch);
46  PString & add(const char * str);
47 
48  template<typename T>
49  PString & operator += (const T & other);
50  template<typename T>
51  PString & operator << (const T & other);
52 
53  PString replace(const PString & pattern, const PString & replaceStr) const;
54  PString replace(const PString & pattern, const PString & replaceStr, size_t maxNbReplace) const;
55  PString replaceChar(const PString & vecChar, const PString & replaceStr) const;
56  PString format(const PString & arg) const;
57  bool isSameBegining(const PString & beginStr) const;
58  size_t count(char ch) const;
59  size_t count(const PString & patern) const;
60  bool find(char ch) const;
61  bool find(const PString & listChar) const;
62 
63  PString getCommonBegining(const PString & other) const;
64 
65  std::vector<PString> split(char separator) const;
66  std::vector<PString> split(const PString & vecSeparator) const;
67  PString & merge(const std::vector<PString> & vecStr, const PString & separator = "");
68 
69  PString eraseChar(char ch) const;
70  PString eraseChar(const PString & vecChar) const;
71  PString eraseFirstChar(const PString & vecChar) const;
72  PString eraseLastChar(const PString & vecChar) const;
73  PString eraseFirstLastChar(const PString & vecChar) const;
74 
75  bool isUpperCase() const;
76  bool isLowerCase() const;
77  bool isNumber() const;
78  PString toLower() const;
79  PString toLowerUnderscore() const;
80  PString toUpper() const;
81  PString firstToLower() const;
82  PString firstToUpper() const;
83 
84  PString escapeStr(const PString & strCharToEscape, const PString & escapeSeq) const;
85 
86  protected:
87  void copyPString(const PString & other);
88  void copyPString(const std::string & other);
89 
90  void concatenatePString(const PString & other);
91  void concatenatePString(const std::string & other);
92  private:
93  void initialisationPString();
94 };
95 
96 typedef std::vector<PString> PVecString;
97 
98 PString phoenix_charToString(const char * ch);
99 bool phoenix_isCharUpperCase(char ch);
100 bool phoenix_isCharLowerCase(char ch);
101 bool phoenix_isCharNumber(char ch);
102 
103 void eraseFirstLastChar(PVecString & vecOut, const PVecString & vecStr, const PString & vecChar);
104 PVecString eraseFirstLastChar(const PVecString & vecStr, const PString & vecChar);
105 
106 #include "PString_impl.h"
107 
108 #endif
109 
std::vector< PString > PVecString
Definition: PString.h:96
bool phoenix_isCharNumber(char ch)
Tels if the character is a number or not.
Definition: PString.cpp:43
PString phoenix_charToString(const char *ch)
Convert a char pointer into a string (event if the char pointer is NULL)
Definition: PString.cpp:14
void eraseFirstLastChar(PVecString &vecOut, const PVecString &vecStr, const PString &vecChar)
Erase first and last characters of all PString in given vector.
Definition: PString.cpp:52
bool phoenix_isCharUpperCase(char ch)
Tels if the character is upper case letter.
Definition: PString.cpp:27
bool phoenix_isCharLowerCase(char ch)
Tels if the character is lower case letter.
Definition: PString.cpp:35
Extends the std::string.
Definition: PString.h:16
PString & operator=(const PString &other)
Definition of equal operator of PString.
Definition: PString.cpp:112
PString & add(const PString &other)
Add a PString to an other.
Definition: PString.cpp:154
bool isLowerCase() const
Say if the given PString is in lowercase.
Definition: PString.cpp:568
PString toLowerUnderscore() const
Convert std::string in lower case and space in '_'.
Definition: PString.cpp:618
PString getCommonBegining(const PString &other) const
Get the common begining between the current PString and other.
Definition: PString.cpp:399
virtual ~PString()
Destructeur of PString.
Definition: PString.cpp:104
PString & fromValue(const T &other)
Convert a value to a PString.
Definition: PString_impl.h:36
static PString toString(const T &value)
Convert a value to a PString.
Definition: PString_impl.h:18
PString replace(const PString &pattern, const PString &replaceStr) const
Replace a PString into an other PString.
Definition: PString.cpp:204
PString eraseChar(char ch) const
Erase char ch of current string.
Definition: PString.cpp:478
PString format(const PString &arg) const
Replace first {} with arg.
Definition: PString.cpp:298
std::vector< PString > split(char separator) const
Cut a PString on the given separator char.
Definition: PString.cpp:420
PString toLower() const
Convert PString in lower case.
Definition: PString.cpp:598
PString toUpper() const
Convert std::string in upper case.
Definition: PString.cpp:639
PString replaceChar(const PString &vecChar, const PString &replaceStr) const
Replace characters in vecChar by replaceStr.
Definition: PString.cpp:282
bool find(char ch) const
Find a char in a string.
Definition: PString.cpp:371
PString firstToLower() const
Convert first letter of the PString in lower case.
Definition: PString.cpp:659
PString escapeStr(const PString &strCharToEscape, const PString &escapeSeq) const
Escape given string with passed characters.
Definition: PString.cpp:689
PString & operator<<(const T &other)
Append type in PString.
Definition: PString_impl.h:78
PString & operator+=(const PString &other)
Add a PString to an other.
Definition: PString.cpp:130
bool isNumber() const
Say if the given PString is composed of numbers.
Definition: PString.cpp:583
bool isSameBegining(const PString &beginStr) const
Say if the current PString has the same begining of beginStr.
Definition: PString.cpp:306
T toValue() const
Convert the current string into a value.
Definition: PString_impl.h:46
size_t count(char ch) const
Count the number of char ch in the current PString.
Definition: PString.cpp:323
PString & merge(const std::vector< PString > &vecStr, const PString &separator="")
Merge a set of PString.
Definition: PString.cpp:464
PString eraseFirstLastChar(const PString &vecChar) const
Erase first and last char in a string.
Definition: PString.cpp:545
void copyPString(const PString &other)
Copy function of PString.
Definition: PString.cpp:706
void concatenatePString(const PString &other)
Concatenate a PString into the current PString.
Definition: PString.cpp:722
PString eraseFirstChar(const PString &vecChar) const
Erase first char in a string.
Definition: PString.cpp:502
PString()
Default constructor of PString.
Definition: PString.cpp:70
bool isUpperCase() const
Say if the given PString is in uppercase.
Definition: PString.cpp:553
void initialisationPString()
Initialisation function of the class PString.
Definition: PString.cpp:740
PString firstToUpper() const
Convert first letter of the PString in upper case.
Definition: PString.cpp:673
PString eraseLastChar(const PString &vecChar) const
Erase first and last char in a string.
Definition: PString.cpp:521