OpenLexocad  27.1
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 
7 #include <iomanip>
8 #include <sstream>
9 #include <string>
10 
11 #if _MSC_VER >= 1600
12 #define BOOST_HAS_STDINT_H
13 #endif
14 #include <stdint.h>
15 
16 class QString;
17 
18 #if _MSC_VER >= 1800
19 class QUuid;
20 #else
21 struct QUuid;
22 #endif
23 
24 namespace Base
25 {
26 class LX_BASE_EXPORT StringTool
27 {
28 public:
29  template <typename T>
30  static std::string toStlString(const T& t)
31  {
32  std::stringstream ss;
33  ss << t;
34  return ss.str();
35  }
36 
37  template <typename T>
38  static std::string toStlString(const T& t, int precision)
39  {
40  std::stringstream ss;
41  ss.precision(precision);
42  ss << t;
43  return ss.str();
44  }
45 
46  template <typename T>
47  static std::string toStlString(const T& t, int fieldWidth, char fillChar)
48  {
49  std::stringstream ss;
50  ss << std::setfill(fillChar) << std::setw(fieldWidth) << t;
51  return ss.str();
52  }
53 
54  static std::string toStlString(const bool& b, int fieldWidth, char fillChar)
55  {
56  std::string str;
57  if (b)
58  str = std::string("true");
59  else
60  str = std::string("false");
61 
62  std::stringstream ss;
63  ss << std::setfill(fillChar) << std::setw(fieldWidth) << str;
64  return ss.str();
65  }
66 
67  static std::string toStlString(const bool& b)
68  {
69  if (b)
70  return std::string("true");
71  else
72  return std::string("false");
73  }
74 
75  static std::string toStlString(const QString& str);
76 
77  template <typename T>
78  static Base::String toString(const T& t)
79  {
80  std::wstringstream ss;
81  ss << t;
82  return ss.str();
83  }
84 
85  template <typename T>
86  static Base::String toString(const T& t, int precision)
87  {
88  std::wstringstream ss;
89  ss.precision(precision);
90  ss << t;
91  return ss.str();
92  }
93 
94  template <typename T>
95  static Base::String toString(const T& t, int fieldWidth, wchar_t fillChar)
96  {
97  std::wstringstream ss;
98  ss << std::setfill(fillChar) << std::setw(fieldWidth) << t;
99  return ss.str();
100  }
101 
102 
103  static Base::String toString(const bool& b, int fieldWidth, wchar_t fillChar)
104  {
105  Base::String str;
106  if (b)
107  str = L"true";
108  else
109  str = L"false";
110 
111  std::wstringstream ss;
112  ss << std::setfill(fillChar) << std::setw(fieldWidth) << str._utf16string;
113  return ss.str();
114  }
115 
116 
117  static Base::String toString(const bool& b)
118  {
119  if (b)
120  return L"true";
121  else
122  return L"false";
123  }
124 
126  static std::string toUpper(const std::string& str);
128  static std::string toLower(const std::string& str);
130  static Base::String toUpper(const Base::String& str);
132  static Base::String toLower(const Base::String& str);
133 
135  static std::string trimLeft(const std::string& str);
137  static std::string trimRight(const std::string& str);
139  static std::string trim(const std::string& str);
141  static Base::String trimLeft(const Base::String& str);
143  static Base::String trimRight(const Base::String& str);
145  static Base::String trim(const Base::String& str);
146 
148  static std::string replace(const std::string& str, const std::string& src, const std::string& rpl);
150  static Base::String replace(const Base::String& str, const Base::String& src, const Base::String& rpl);
151 
153  static bool isEmpty(const std::string& str);
155  static bool isEmpty(const Base::String& str);
156 
158  static bool toBool(const std::string& str, bool* ok = 0);
160  static bool toBool(const char* str, bool* ok = 0);
162  static bool toBool(const Base::String& str, bool* ok = 0);
164  static double toDouble(const std::string& str, bool* ok = 0);
166  static double toDouble(const char* str, bool* ok = 0);
168  static double toDouble(const Base::String& str, bool* ok = 0);
170  static float toFloat(const std::string& str, bool* ok = 0);
172  static uint8_t toUInt8(const std::string& str, bool* ok);
173  static uint8_t toUInt8(const Base::String& str, bool* ok);
174  static uint32_t toUInt32(const std::string& str, bool* ok);
175  static uint32_t toUInt32(const Base::String& str, bool* ok);
176  static uint64_t toUInt64(const std::string& str, bool* ok);
177  static uint64_t toUInt64(const Base::String& str, bool* ok);
178  static int toInt(const std::string& str, bool* ok = 0);
179  static int toInt(const Base::String& str, bool* ok = 0);
181  static char toChar(const std::string& str, bool* ok = 0);
183  static Base::String toUtf16(const std::string& utf8string);
185  static std::string toUtf8(const Base::String& widestring);
187  static std::wstring toWString(const Base::String& str);
189  static Base::String toString(const std::string& str);
190  static std::string toStlString(const Base::String& str);
191 
192 
194  static std::string toLegal(const std::string& str);
196  static std::string createGuidString();
198  static bool toUuid(const std::string& ifcguid, QUuid& uuid);
200  static bool toGUID(const std::string& ifcguid, std::string& guid);
202  static bool toBase64String(const std::string& in, std::string& out);
204  static bool toBase64String(const QUuid& in, std::string& out);
206  static bool toBase64String(const Base::GlobalId& in, Base::String& out);
208  static QString toQString(const Base::String& str);
210  static Base::String toString(const QString& str);
211 
212  static std::string toMultiByteString(const Base::String& str);
213 };
214 
215 
216 } // namespace Base
static Base::String toString(const bool &b)
Definition: StringTool.h:117
Definition: StringTool.h:26
static Base::String toString(const T &t, int fieldWidth, wchar_t fillChar)
Definition: StringTool.h:95
static Base::String toString(const T &t)
Definition: StringTool.h:78
static std::string toStlString(const T &t, int fieldWidth, char fillChar)
Definition: StringTool.h:47
static std::string toStlString(const T &t, int precision)
Definition: StringTool.h:38
A Utf-16 (windows) or ucs4 (unix) encoded string class.
Definition: String.h:23
static std::string toStlString(const bool &b)
Definition: StringTool.h:67
static Base::String toString(const bool &b, int fieldWidth, wchar_t fillChar)
Definition: StringTool.h:103
static Base::String toString(const T &t, int precision)
Definition: StringTool.h:86
Definition: GlobalId.h:29
static std::string toStlString(const T &t)
Definition: StringTool.h:30
static std::string toStlString(const bool &b, int fieldWidth, char fillChar)
Definition: StringTool.h:54
Definition: AbstractXMLReader.h:5