OpenLexocad  27.0
StringTool.h
Go to the documentation of this file.
1 #pragma once
2 #pragma warning(disable : 4251)
3 
4 #include <Base/GlobalId.h>
5 #include <Base/String.h>
6 #include <Base/base_defines.h>
7 
8 #include <iomanip>
9 #include <sstream>
10 #include <string>
11 
12 #if _MSC_VER >= 1600
13 #define BOOST_HAS_STDINT_H
14 #endif
15 #include <stdint.h>
16 
17 class QString;
18 
19 #if _MSC_VER >= 1800
20 class QUuid;
21 #else
22 struct QUuid;
23 #endif
24 
25 namespace Base
26 {
28 {
29 public:
30  template <typename T>
31  static std::string toStlString(const T& t)
32  {
33  std::stringstream ss;
34  ss << t;
35  return ss.str();
36  }
37 
38  template <typename T>
39  static std::string toStlString(const T& t, int precision)
40  {
41  std::stringstream ss;
42  ss.precision(precision);
43  ss << t;
44  return ss.str();
45  }
46 
47  template <typename T>
48  static std::string toStlString(const T& t, int fieldWidth, char fillChar)
49  {
50  std::stringstream ss;
51  ss << std::setfill(fillChar) << std::setw(fieldWidth) << t;
52  return ss.str();
53  }
54 
55  static std::string toStlString(const bool& b, int fieldWidth, char fillChar)
56  {
57  std::string str;
58  if (b)
59  str = std::string("true");
60  else
61  str = std::string("false");
62 
63  std::stringstream ss;
64  ss << std::setfill(fillChar) << std::setw(fieldWidth) << str;
65  return ss.str();
66  }
67 
68  static std::string toStlString(const bool& b)
69  {
70  if (b)
71  return std::string("true");
72  else
73  return std::string("false");
74  }
75 
76  template <typename T>
77  static Base::String toString(const T& t)
78  {
79  std::wstringstream ss;
80  ss << t;
81  return ss.str();
82  }
83 
84  template <typename T>
85  static Base::String toString(const T& t, int precision)
86  {
87  std::wstringstream ss;
88  ss.precision(precision);
89  ss << t;
90  return ss.str();
91  }
92 
93  template <typename T>
94  static Base::String toString(const T& t, int fieldWidth, wchar_t fillChar)
95  {
96  std::wstringstream ss;
97  ss << std::setfill(fillChar) << std::setw(fieldWidth) << t;
98  return ss.str();
99  }
100 
101 
102  static Base::String toString(const bool& b, int fieldWidth, wchar_t fillChar)
103  {
104  Base::String str;
105  if (b)
106  str = L"true";
107  else
108  str = L"false";
109 
110  std::wstringstream ss;
111  ss << std::setfill(fillChar) << std::setw(fieldWidth) << str._utf16string;
112  return ss.str();
113  }
114 
115 
116  static Base::String toString(const bool& b)
117  {
118  if (b)
119  return L"true";
120  else
121  return L"false";
122  }
123 
125  static std::string toUpper(const std::string& str);
127  static std::string toLower(const std::string& str);
129  static Base::String toUpper(const Base::String& str);
131  static Base::String toLower(const Base::String& str);
132 
134  static std::string trimLeft(const std::string& str);
136  static std::string trimRight(const std::string& str);
138  static std::string trim(const std::string& str);
140  static Base::String trimLeft(const Base::String& str);
142  static Base::String trimRight(const Base::String& str);
144  static Base::String trim(const Base::String& str);
145 
147  static std::string replace(const std::string& str, const std::string& src, const std::string& rpl);
149  static Base::String replace(const Base::String& str, const Base::String& src, const Base::String& rpl);
150 
152  static bool isEmpty(const std::string& str);
154  static bool isEmpty(const Base::String& str);
155 
157  static bool toBool(const std::string& str, bool* ok = 0);
159  static bool toBool(const char* str, bool* ok = 0);
161  static bool toBool(const Base::String& str, bool* ok = 0);
163  static double toDouble(const std::string& str, bool* ok = 0);
165  static double toDouble(const char* str, bool* ok = 0);
167  static double toDouble(const Base::String& str, bool* ok = 0);
169  static float toFloat(const std::string& str, bool* ok = 0);
171  static uint8_t toUInt8(const std::string& str, bool* ok);
172  static uint8_t toUInt8(const Base::String& str, bool* ok);
173  static uint32_t toUInt32(const std::string& str, bool* ok);
174  static uint32_t toUInt32(const Base::String& str, bool* ok);
175  static uint64_t toUInt64(const std::string& str, bool* ok);
176  static uint64_t toUInt64(const Base::String& str, bool* ok);
177  static int toInt(const std::string& str, bool* ok = 0);
178  static int toInt(const Base::String& str, bool* ok = 0);
180  static char toChar(const std::string& str, bool* ok = 0);
182  static Base::String toUtf16(const std::string& utf8string);
184  static std::string toUtf8(const Base::String& widestring);
186  static std::wstring toWString(const Base::String& str);
188  static Base::String toString(const std::string& str);
189  static std::string toStlString(const Base::String& str);
190 
191 
193  static std::string toLegal(const std::string& str);
195  static std::string createGuidString();
197  static bool toUuid(const std::string& ifcguid, QUuid& uuid);
199  static bool toGUID(const std::string& ifcguid, std::string& guid);
201  static bool toBase64String(const std::string& in, std::string& out);
203  static bool toBase64String(const QUuid& in, std::string& out);
205  static bool toBase64String(const Base::GlobalId& in, Base::String& out);
207  static QString toQString(const Base::String& str);
209  static Base::String toString(const QString& str);
210 
211  static std::string toMultiByteString(const Base::String& str);
212 };
213 
214 
215 } // namespace Base
static Base::String toString(const bool &b)
Definition: StringTool.h:116
#define BASE_EXPORT
Definition: base_defines.h:12
Definition: StringTool.h:27
static Base::String toString(const T &t, int fieldWidth, wchar_t fillChar)
Definition: StringTool.h:94
static Base::String toString(const T &t)
Definition: StringTool.h:77
static std::string toStlString(const T &t, int fieldWidth, char fillChar)
Definition: StringTool.h:48
static std::string toStlString(const T &t, int precision)
Definition: StringTool.h:39
A Utf-16 (windows) or ucs4 (unix) encoded string class.
Definition: String.h:29
static std::string toStlString(const bool &b)
Definition: StringTool.h:68
static Base::String toString(const bool &b, int fieldWidth, wchar_t fillChar)
Definition: StringTool.h:102
static Base::String toString(const T &t, int precision)
Definition: StringTool.h:85
Definition: GlobalId.h:32
static std::string toStlString(const T &t)
Definition: StringTool.h:31
static std::string toStlString(const bool &b, int fieldWidth, char fillChar)
Definition: StringTool.h:55
Definition: AbstractXMLReader.h:8