cbp2make
Makefile generation tool for Code::Blocks IDE
stlstrings.h
Go to the documentation of this file.
1 /*
2  cbp2make : Makefile generation tool for the Code::Blocks IDE
3  Copyright (C) 2010-2013 Mirai Computing (mirai.computing@gmail.com)
4 
5  This program is free software: you can redistribute it and/or modify
6  it under the terms of the GNU General Public License as published by
7  the Free Software Foundation, either version 3 of the License, or
8  (at your option) any later version.
9 
10  This program is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU General Public License for more details.
14 
15  You should have received a copy of the GNU General Public License
16  along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */
18 
19 //------------------------------------------------------------------------------
20 #ifndef STL_STRINGS_H
21 #define STL_STRINGS_H
22 //------------------------------------------------------------------------------
23 #include <cstring>
24 #include <ostream>
25 #include <vector>
26 #include <algorithm>
27 //------------------------------------------------------------------------------
28 
29 #define MAX_SHORTSTRING_LENGTH 256
30 #define INVALID_INDEX -1
31 
32 class CString
33 {
35  protected:
36  std::string m_String;
38  public:
39  std::string& GetString(void);
40  std::string GetString(void) const;
41  char *GetCString(void) const;
42  int GetLength(void) const;
43  bool IsEmpty(void) const;
44  CString& SetLength(void);
45  CString& SetLength(const int Length);
46  CString& Clear(void);
47  char GetChar(const int Index) const;
48  char GetFirstChar(void) const;
49  char GetLastChar(void) const;
50  void SetChar(const int Index, const char Value);
51  CString& Assign(const char AChar);
52  CString& Assign(const char *AString);
53  CString& Assign(const std::string& AString);
54  CString& Assign(const CString& AString);
55  CString& Append(const char AChar);
56  CString& Append(const char *AString);
57  CString& Append(const std::string& AString);
58  CString& Append(const CString& AString);
59  CString& AppendCR(void);
60  CString& AppendLF(void);
61  CString& AppendCRLF(void);
62  CString& AppendEOL(void);
63  CString GetEOL(void);
64  CString& SetEOL(const eol_t EndOfLine);
65  char& operator [](const int Index);
66  char operator [](const int Index) const;
67  CString& operator =(const char AChar);
68  CString& operator =(const char *AString);
69  CString& operator =(const std::string& AString);
70  CString& operator =(const CString& AString);
71  CString& operator =(const int AInteger);
72  CString& operator =(const long long int AInteger);
73  CString& operator =(const float AFloat);
74  CString& operator =(const double AFloat);
75  CString& operator +=(const char AChar);
76  CString& operator +=(const char *CString);
77  CString& operator +=(const CString& AString);
78  CString& operator +=(const int AInteger);
79  CString& operator +=(const long long int AInteger);
80  CString& operator +=(const float AFloat);
81  CString& operator +=(const double AFloat);
82  bool operator ==(const char *AString) const;
83  bool operator ==(const std::string& AString) const;
84  bool operator ==(const CString& AString) const;
85  int GetInteger(void) const;
86  double GetFloat(void) const;
87  void Fill(const char AChar);
88  void Print(std::ostream& out);
89  public:
90  CString(void);
91  CString(const char AChar);
92  CString(const char *AString);
93  CString(const std::string& AString);
94  CString(const CString& AString);
95  ~CString(void);
96 };
97 
99 {
100  protected:
101  std::vector<CString *> m_Strings;
103  protected:
104  bool ValidIndex(const int Index) const;
105  public:
106  bool IsEmpty(void) const;
107  int GetCount(void) const;
108  int GetLength(void) const;
109  CString& GetString(const int Index);
110  CString GetString(const int Index) const;
111  CString Join(const CString& Delimiter) const;
112  int FindString(const CString& AString) const;
113  int Insert(const CString *AString);
114  int Insert(const CString& AString);
115  CStringList& Insert(const CStringList& AStringList);
116  CStringList& InsertAt(const int Index, const CStringList& AStringList);
117  CStringList& InsertAt(const int Index, const CString *AString);
118  CStringList& InsertAt(const int Index, const CString& AString);
119  CStringList& RemoveAt(const int Index);
120  CStringList& RemoveEmpty(void);
121  CStringList& RemoveDuplicates(void);
122  CStringList& Clear(void);
123  bool AppendFromFile(const CString& FileName);
124  bool LoadFromFile(const CString& FileName);
125  bool SaveToFile(const CString& FileName);
126  void Print(std::ostream& out);
127  CStringList& operator =(const CString& AString);
128  CStringList& operator =(const CStringList& AStringList);
129  CString& operator [](const int Index);
130  CString operator [](const int Index) const;
131  CStringList& operator <<(const CString& AString);
132  public:
133  CStringList(void);
134  CStringList(const CStringList& AStringList);
135  ~CStringList(void);
136 };
137 
138 #define CHARSET_SIZE (1<<(8*sizeof(char)))
139 
140 class CCharset
141 {
142  protected:
143  bool m_Charset[CHARSET_SIZE];
145  protected:
146  void UpdateCharset(void);
147  void UpdateAlphabet(void);
148  public:
149  bool Isset(const char AChar) const;
150  char GetChar(const char AChar) const;
151  void SetChar(const char AChar);
152  void UnsetChar(const char AChar);
153  CString GetAlphabet(void) const;
154  void SetAlphabet(const CString& Alphabet);
155  void Print(std::ostream& out);
156  public:
157  CCharset(void);
158  CCharset(const CCharset& Charset);
159  CCharset(const CString& Alphabet);
160  ~CCharset(void);
161 };
162 
164 {
165  protected:
167  public:
168  virtual int FirstPosition(void) { return 0; }
169  virtual int ThisPosition(void) { return 0; }
170  virtual int LastPosition(void) { return 0; }
171  //
172  virtual char& First(void) { return m_NullChar; }
173  virtual char& Prev(void) { return m_NullChar; }
174  virtual char& This(void) { return m_NullChar; }
175  virtual char& Next(void) { return m_NullChar; }
176  virtual char& Last(void) { return m_NullChar; }
177  virtual void Reset(void) {};
178  virtual bool Match(const CString& Pattern, const bool Move = false);
179  virtual void Print(std::ostream& out) {};
180  public:
181  CCharIterator(void) { m_NullChar = 0; };
182  CCharIterator(const CCharIterator& ACharIterator) { m_NullChar = 0; };
183  virtual ~CCharIterator(void) {};
184 };
185 
187 {
188  protected:
191  public:
192  virtual int FirstPosition(void);
193  virtual int ThisPosition(void);
194  virtual int LastPosition(void);
195  //
196  virtual char& First(void);
197  virtual char& Prev(void);
198  virtual char& This(void);
199  virtual char& Next(void);
200  virtual char& Last(void);
201  virtual void Reset(void);
202  virtual bool Match(const CString& Pattern, const bool Move = false);
203  public:
204  CStringIterator(void);
205  CStringIterator(const CString *AString);
206  CStringIterator(const CStringIterator& AStringIterator);
207  virtual ~CStringIterator(void) {};
208 };
209 
211 {
212  protected:
214  int m_Line;
216  public:
217  virtual int FirstPosition(void);
218  virtual int ThisPosition(void);
219  virtual int LastPosition(void);
220  //
221  virtual char& First(void);
222  virtual char& Prev(void);
223  virtual char& This(void);
224  virtual char& Next(void);
225  virtual char& Last(void);
226  virtual void Reset(void);
227  virtual bool Match(const CString& Pattern, const bool Move = false);
228  public:
229  CStringListIterator(void);
230  CStringListIterator(const CStringList *AStringList);
231  CStringListIterator(const CStringListIterator& AStringListIterator);
232  virtual ~CStringListIterator(void) {};
233 };
234 
235 static const unsigned int MAX_CHAR_FREQUENCY = ((1<<(7*sizeof(unsigned int)))-1);
236 
238 {
239  private:
240  static const unsigned int FLAG_PURE_NUMERIC = 0x00000001;
241  static const unsigned int FLAG_PURE_INTEGER = 0x00000002;
242  static const unsigned int FLAG_ASCII_TEXT = 0x00000004;
243  static const unsigned int FLAG_CUSTOM_BINARY = 0x00000008;
244  protected:
245  unsigned int m_Histogram[CHARSET_SIZE];
246  unsigned int m_Flags;
247  protected:
248  void Analyze(void);
249  public:
250  void Reset(void);
251  void Insert(const char AChar);
252  void Insert(const CString& AString);
253  void Insert(const CStringList& AStringList);
254  void Remove(const char AChar);
255  void Remove(const CString& AString);
256  void Remove(const CStringList& AStringList);
257  bool IsPureNumeric(void);
258  bool IsPureInteger(void);
259  bool IsAsciiText(void);
260  bool IsCustomBinary(void);
261  unsigned int GetAt(const char AChar) const;
262  void SetAt(const char AChar, const unsigned int Frequency);
263  CString GetAlphabet(void) const;
264  void Print(std::ostream& out);
265  public:
266  CCharHistogram(void);
267  CCharHistogram(const CCharHistogram& AHistogram);
268  ~CCharHistogram(void);
269 };
270 
271 static const CString ALPHABET_NULL_CHAR = char(0x00);
272 static const CString ALPHABET_TAB_CHAR = char(0x09);
273 static const CString ALPHABET_CR_CHAR = char(0x0d);
274 static const CString ALPHABET_LF_CHAR = char(0x0a);
275 static const CString ALPHABET_NUMBER = "0123456789";
276 static const CString ALPHABET_INTEGER_NUMBER = "+-0123456789";
277 static const CString ALPHABET_FLOAT_NUMBER = "+-.,0123456789eE";
278 static const CString ALPHABET_DOUBLE_NUMBER = "+-.,0123456789dD";
279 static const CString ALPHABET_REAL_NUMBER = "+-.,0123456789eEdD";
280 static const CString ALPHABET_HEX_NUMBER = "0123456789abcdefABCDEF";
281 static const CString ALPHABET_CTL_CHARS = "\'\"\?\\\a\b\f\n\r\t\v\0";
282 static const CString ALPHABET_ESC_SEQUENCE = "\'\"?\\abfnrtv0";
283 static const CString ALPHABET_SHELL_CHARS = " !@#$%^&*(){}[];\'\"\\|<>?";
284 
285 static const char HEX_CHARS_UCASE[17] = "0123456789ABCDEF";
286 static const char HEX_CHARS_LCASE[17] = "0123456789abcdef";
287 
288 inline CString operator +(const CString& AString, const CString& BString)
289 { CString result(AString); result+=BString; return result; }
290 
291 inline CString operator +(const CString& AString, const char BChar)
292 { CString result(AString); result+=BChar; return result; }
293 
294 inline CString operator +(const char AChar, const CString& BString)
295 { CString result(AChar); result+=BString; return result; }
296 
297 inline CString operator +(const CString& AString, const int BInteger)
298 { CString result(AString); result+=BInteger; return result; }
299 
300 inline CString operator +(const int AInteger, const CString& BString)
301 { CString result; result+=AInteger; result+=BString; return result; }
302 
303 inline CString operator +(const CString& AString, const float BFloat)
304 { CString result(AString); result+=BFloat; return result; }
305 
306 inline CString operator +(const float AFloat, const CString& BString)
307 { CString result; result+=AFloat; result+=BString; return result; }
308 
309 inline CString operator +(const CString& AString, const double BFloat)
310 { CString result(AString); result+=BFloat; return result; }
311 
312 inline CString operator +(const double AFloat, const CString& BString)
313 { CString result; result+=AFloat; result+=BString; return result; }
314 
315 inline CString operator +(const CString& AString, const char *BCString)
316 { CString result(AString); result+=BCString; return result; }
317 
318 inline CString operator +(const char *AString, const CString& BString)
319 { CString result(AString); result+=BString; return result; }
320 /*
321 inline CString UpperCase(const CString& AString)
322 {
323  CString result(AString); strupr(result.GetCString()); return result;
324  //CString result(AString); std::strupr(result.GetCString()); return result;
325 }
326 
327 inline CString LowerCase(const CString& AString)
328 {
329  CString result(AString); std::strlwr(result.GetCString()); return result;
330  //CString result(AString); std::strlwr(result.GetCString()); return result;
331 }
332 */
333 
334 // this might solve compatibility issues // "islower(c) ? toupper(c) : c" //
335 
336 inline CString UpperCase(const CString& AString)
337 {
338  CString result; result.SetLength(AString.GetLength());
339  for (int i = 0, n = AString.GetLength(); i < n; i++)
340  {
341  char c = AString[i];
342  result[i] = islower(c) ? toupper(c) : c;
343  }
344  return result;
345 }
346 
347 inline CString LowerCase(const CString& AString)
348 {
349  CString result; result.SetLength(AString.GetLength());
350  for (int i = 0, n = AString.GetLength(); i < n; i++)
351  {
352  char c = AString[i];
353  result[i] = isupper(c) ? tolower(c) : c;
354  }
355  return result;
356 }
357 
358 inline char hexChar(const unsigned char Value)
359 {
360  return HEX_CHARS_LCASE[Value&0xF];
361 }
362 
363 inline char HexChar(const unsigned char Value)
364 {
365  return HEX_CHARS_UCASE[Value&0xF];
366 }
367 
368 inline CString hex(const unsigned int AInteger, const unsigned int Length=8)
369 {
370  CString result; result.SetLength(Length);
371  unsigned int value = AInteger;
372  for (unsigned int i = 0, j = Length; i < Length; i++)
373  {
374  result[--j] = HEX_CHARS_LCASE[value & 0xF];
375  value >>= 4;
376  }
377  return result;
378 }
379 
380 inline CString Hex(const unsigned int AInteger, const unsigned int Length=8)
381 {
382  CString result; result.SetLength(Length);
383  unsigned int value = AInteger;
384  for (unsigned int i = 0, j = Length; i < Length; i++)
385  {
386  result[--j] = HEX_CHARS_UCASE[value & 0xF];
387  value >>= 4;
388  }
389  return result;
390 }
391 
392 inline CString hex8(const unsigned char AInteger)
393 {
394  return hex(AInteger,2*sizeof(unsigned char));
395 }
396 
397 inline CString Hex8(const unsigned char AInteger)
398 {
399  return Hex(AInteger,2*sizeof(unsigned char));
400 }
401 
402 inline CString hex16(const unsigned short int AInteger)
403 {
404  return hex(AInteger,2*sizeof(unsigned short int));
405 }
406 
407 inline CString Hex16(const unsigned short int AInteger)
408 {
409  return Hex(AInteger,2*sizeof(unsigned short int));
410 }
411 
412 inline CString hex32(const unsigned int AInteger)
413 {
414  return hex(AInteger,2*sizeof(unsigned int));
415 }
416 
417 inline CString Hex32(const unsigned int AInteger)
418 {
419  return Hex(AInteger,2*sizeof(unsigned int));
420 }
421 
422 inline CString hex64(const long long int AInteger, const unsigned int Length=16)
423 {
424  CString result; result.SetLength(Length);
425  long long int value = AInteger;
426  for (unsigned int i = 0, j = Length; i < Length; i++)
427  {
428  result[--j] = HEX_CHARS_LCASE[(unsigned int)value & 0xF];
429  value >>= 4;
430  }
431  return result;
432 }
433 
434 inline CString Hex64(const long long int AInteger, const unsigned int Length=16)
435 {
436  CString result; result.SetLength(Length);
437  long long int value = AInteger;
438  for (unsigned int i = 0, j = Length; i < Length; i++)
439  {
440  result[--j] = HEX_CHARS_UCASE[(unsigned int)value & 0xF];
441  value >>= 4;
442  }
443  return result;
444 }
445 
446 inline CString hex(const unsigned char *Buffer, const unsigned int Length=0)
447 {
448  unsigned int length = Length*2;
449  CString result; result.SetLength(length);
450  for (unsigned int i = 0, j = length; i < Length; i++)
451  {
452  result[--j] = HEX_CHARS_UCASE[Buffer[i] & 0xF];
453  result[--j] = HEX_CHARS_UCASE[(Buffer[i]>>4) & 0xF];
454  }
455  return result;
456 }
457 
458 inline CString Hex(const unsigned char *Buffer, const unsigned int Length=0)
459 {
460  unsigned int length = Length*2;
461  CString result; result.SetLength(length);
462  for (unsigned int i = 0, j = length; i < Length; i++)
463  {
464  result[--j] = HEX_CHARS_UCASE[Buffer[i] & 0xF];
465  result[--j] = HEX_CHARS_UCASE[(Buffer[i]>>4) & 0xF];
466  }
467  return result;
468 }
469 
470 CString StringOfChars(const char AChar, const int Count);
471 CString FillStr(const CString& Prefix, const char AChar, const CString& Suffix, const int Length);
472 CString EnumStr(const CString& Prefix, const int Counter,
473  const CString& Suffix, const unsigned int Length);
474 CString SignStr(const int Signature);
475 CString SubStr(const CString& AString, const int FirstPos, const int LastPos);
476 CString ShiftStr(const CString& AString, const int Shift);
477 void SplitStr(const CString& AString, const int Position, CString& LString, CString& RString);
478 CString JoinStr(const CString& AString, const CString& BString, const char Separator);
479 CString LeftStr(const CString& AString, const int Position);
480 CString RightStr(const CString& AString, const int Position);
481 CString FilterStr(const CString& AString, const CCharset& ValidChars,
482  const CCharset& InvalidChars, const bool ValidateUndefined);
483 int CountChars(const CString& AString, const char AChar);
484 int NextCharPos(const CString& AString, const char AChar, const int Position);
485 int PrevCharPos(const CString& AString, const char AChar, const int Position);
486 int FirstCharPos(const CString& AString, const char AChar);
487 int LastCharPos(const CString& AString, const char AChar);
488 CString TrimStr(const CString& AString);
489 CString LeadStr(const CString& AString, const unsigned int RLength);
490 void ParseStr(const CString& AString, const CString& Delimiters, CStringList& SubStrings);
491 void ParseStr(const CString& AString, const char Delimiter, CStringList& SubStrings);
492 CString CollectStr(const CStringList& SubStrings, const CString& Delimiters);
493 CString StripDupChars(const CString& AString, const char AChar);
494 CString StripDupChars(const CString& AString);
495 CString CheckFirstChar(const CString& AString, const char AChar);
496 CString CheckLastChar(const CString& AString, const char AChar);
497 int FindStr(const CString& AString, const CString& BString);
498 CString FindReplaceChar(const CString& AString, const char SearchChar,
499  const char ReplaceChar);
500 CString FindReplaceStr(const CString& AString, const CString& SearchString,
501  const CString& ReplaceString);
502 int ParseMemSizeStr(const CString& AString, int& UnitSize, char& UnitChar);
503 int ParseMemSizeStr(const CString& AString);
504 long long int ParseMemSizeStr64(const CString& AString,
505  long long int& UnitSize, char& UnitChar);
506 long long int ParseMemSizeStr64(const CString& AString);
507 int GuessStr(const CString& AString, const CStringList& Variants,
508  CString& Guessed, const bool TryFuzzy = false);
509 int GuessStr(const CString& AString, const CString& Variants, CString& Guessed,
510  const bool TryFuzzy = false);
511 CString VariantStr(const int Index, const CString& Variants, const char Delimiter = ' ');
512 CString MemSizeStr(const long long int Value, long long int& UnitSize, CString& UnitSuffix);
513 CString MemSizeStr(const long long int Value);
514 CString SI_UnitStr(const double Value, double& UnitSize,
515  CString& UnitPrefix, CString& UnitSymbol);
516 CString SI_UnitStr(const double Value);
517 bool IsQuoted(const CString& AString);
518 CString QuoteStr(const CString& AString);
519 CString UnquoteStr(const CString& AString);
520 CString ShieldSpaces(const CString& AString);
521 CString UnshieldSpaces(const CString& AString);
522 CString ShieldChars(const CString& AString, const CString& Chars);
523 CString UnshieldChars(const CString& AString, const CString& Chars);
524 
525 //---------------------------------------------------------------------------
526 #endif
527 
int GuessStr(const CString &AString, const CStringList &Variants, CString &Guessed, const bool TryFuzzy=false)
Definition: stlstrings.cpp:1436
static const char HEX_CHARS_LCASE[17]
Definition: stlstrings.h:286
static const CString ALPHABET_HEX_NUMBER
Definition: stlstrings.h:280
unsigned int m_Flags
Definition: stlstrings.h:246
static const CString ALPHABET_REAL_NUMBER
Definition: stlstrings.h:279
CString EnumStr(const CString &Prefix, const int Counter, const CString &Suffix, const unsigned int Length)
Definition: stlstrings.cpp:1113
CString Hex16(const unsigned short int AInteger)
Definition: stlstrings.h:407
virtual char & Next(void)
Definition: stlstrings.h:175
Definition: stlstrings.h:34
CString & AppendCR(void)
Definition: stlstrings.cpp:134
int m_Position
Definition: stlstrings.h:190
static const CString ALPHABET_LF_CHAR
Definition: stlstrings.h:274
CString hex64(const long long int AInteger, const unsigned int Length=16)
Definition: stlstrings.h:422
virtual char & This(void)
Definition: stlstrings.h:174
CString SignStr(const int Signature)
Definition: stlstrings.cpp:1122
int FindStr(const CString &AString, const CString &BString)
Definition: stlstrings.cpp:1343
CString VariantStr(const int Index, const CString &Variants, const char Delimiter=' ')
Definition: stlstrings.cpp:1474
Definition: stlstrings.h:140
CString SI_UnitStr(const double Value, double &UnitSize, CString &UnitPrefix, CString &UnitSymbol)
Definition: stlstrings.cpp:1523
CString LeadStr(const CString &AString, const unsigned int RLength)
Definition: stlstrings.cpp:1249
static const CString ALPHABET_CR_CHAR
Definition: stlstrings.h:273
static const CString ALPHABET_NUMBER
Definition: stlstrings.h:275
int GetInteger(void) const
Definition: stlstrings.cpp:298
std::string & GetString(void)
Definition: stlstrings.cpp:28
Definition: stlstrings.h:34
void SetChar(const int Index, const char Value)
Definition: stlstrings.cpp:85
virtual ~CStringIterator(void)
Definition: stlstrings.h:207
char HexChar(const unsigned char Value)
Definition: stlstrings.h:363
bool operator==(const char *AString) const
Definition: stlstrings.cpp:283
std::string m_String
Definition: stlstrings.h:36
CString * m_String
Definition: stlstrings.h:189
CString SubStr(const CString &AString, const int FirstPos, const int LastPos)
Definition: stlstrings.cpp:1133
~CString(void)
Definition: stlstrings.cpp:350
Definition: stlstrings.h:34
char & operator[](const int Index)
Definition: stlstrings.cpp:174
CString CheckLastChar(const CString &AString, const char AChar)
Definition: stlstrings.cpp:1336
CString QuoteStr(const CString &AString)
Definition: stlstrings.cpp:1565
CString ShieldSpaces(const CString &AString)
Definition: stlstrings.cpp:1577
virtual char & Prev(void)
Definition: stlstrings.h:173
CString UnshieldSpaces(const CString &AString)
Definition: stlstrings.cpp:1600
CString & SetEOL(const eol_t EndOfLine)
Definition: stlstrings.cpp:168
virtual int LastPosition(void)
Definition: stlstrings.h:170
static const CString ALPHABET_FLOAT_NUMBER
Definition: stlstrings.h:277
static const CString ALPHABET_ESC_SEQUENCE
Definition: stlstrings.h:282
Definition: stlstrings.h:98
eol_t m_eol_type
Definition: stlstrings.h:37
virtual void Reset(void)
Definition: stlstrings.h:177
CString TrimStr(const CString &AString)
Definition: stlstrings.cpp:1239
static const CString ALPHABET_INTEGER_NUMBER
Definition: stlstrings.h:276
CString & AppendLF(void)
Definition: stlstrings.cpp:139
CString & AppendCRLF(void)
Definition: stlstrings.cpp:144
CString & Append(const char AChar)
Definition: stlstrings.cpp:115
int NextCharPos(const CString &AString, const char AChar, const int Position)
Definition: stlstrings.cpp:1210
bool IsQuoted(const CString &AString)
Definition: stlstrings.cpp:1560
int CountChars(const CString &AString, const char AChar)
Definition: stlstrings.cpp:1203
CString m_NullString
Definition: stlstrings.h:102
char m_NullChar
Definition: stlstrings.h:166
CString & Assign(const char AChar)
Definition: stlstrings.cpp:90
static const CString ALPHABET_DOUBLE_NUMBER
Definition: stlstrings.h:278
int ParseMemSizeStr(const CString &AString, int &UnitSize, char &UnitChar)
Definition: stlstrings.cpp:1383
CString FillStr(const CString &Prefix, const char AChar, const CString &Suffix, const int Length)
Definition: stlstrings.cpp:1105
CString UpperCase(const CString &AString)
Definition: stlstrings.h:336
CString JoinStr(const CString &AString, const CString &BString, const char Separator)
Definition: stlstrings.cpp:1175
static const char HEX_CHARS_UCASE[17]
Definition: stlstrings.h:285
char GetChar(const int Index) const
Definition: stlstrings.cpp:70
static const CString ALPHABET_SHELL_CHARS
Definition: stlstrings.h:283
int LastCharPos(const CString &AString, const char AChar)
Definition: stlstrings.cpp:1230
CString(void)
Definition: stlstrings.cpp:321
double GetFloat(void) const
Definition: stlstrings.cpp:303
CString UnquoteStr(const CString &AString)
Definition: stlstrings.cpp:1571
CString hex(const unsigned int AInteger, const unsigned int Length=8)
Definition: stlstrings.h:368
virtual void Print(std::ostream &out)
Definition: stlstrings.h:179
char GetLastChar(void) const
Definition: stlstrings.cpp:80
int PrevCharPos(const CString &AString, const char AChar, const int Position)
Definition: stlstrings.cpp:1216
eol_t
Definition: stlstrings.h:34
CString Hex(const unsigned int AInteger, const unsigned int Length=8)
Definition: stlstrings.h:380
CString RightStr(const CString &AString, const int Position)
Definition: stlstrings.cpp:1159
CStringList * m_StringList
Definition: stlstrings.h:213
void Print(std::ostream &out)
Definition: stlstrings.cpp:316
Definition: stlstrings.h:32
void SplitStr(const CString &AString, const int Position, CString &LString, CString &RString)
Definition: stlstrings.cpp:1169
CString & SetLength(void)
Definition: stlstrings.cpp:53
CString FindReplaceStr(const CString &AString, const CString &SearchString, const CString &ReplaceString)
Definition: stlstrings.cpp:1369
static const unsigned int MAX_CHAR_FREQUENCY
Definition: stlstrings.h:235
CString LeftStr(const CString &AString, const int Position)
Definition: stlstrings.cpp:1154
CString & AppendEOL(void)
Definition: stlstrings.cpp:150
CString CollectStr(const CStringList &SubStrings, const CString &Delimiters)
Definition: stlstrings.cpp:1289
int FirstCharPos(const CString &AString, const char AChar)
Definition: stlstrings.cpp:1225
static const CString ALPHABET_CTL_CHARS
Definition: stlstrings.h:281
virtual int FirstPosition(void)
Definition: stlstrings.h:168
CString hex32(const unsigned int AInteger)
Definition: stlstrings.h:412
CString hex16(const unsigned short int AInteger)
Definition: stlstrings.h:402
virtual int ThisPosition(void)
Definition: stlstrings.h:169
CString hex8(const unsigned char AInteger)
Definition: stlstrings.h:392
Definition: stlstrings.h:210
char hexChar(const unsigned char Value)
Definition: stlstrings.h:358
CString StringOfChars(const char AChar, const int Count)
Definition: stlstrings.cpp:1098
CString Hex8(const unsigned char AInteger)
Definition: stlstrings.h:397
char GetFirstChar(void) const
Definition: stlstrings.cpp:75
static const CString ALPHABET_TAB_CHAR
Definition: stlstrings.h:272
CString & operator=(const char AChar)
Definition: stlstrings.cpp:184
bool IsEmpty(void) const
Definition: stlstrings.cpp:48
CString operator+(const CString &AString, const CString &BString)
Definition: stlstrings.h:288
Definition: stlstrings.h:186
CString & operator+=(const char AChar)
Definition: stlstrings.cpp:236
#define CHARSET_SIZE
Definition: stlstrings.h:138
int GetLength(void) const
Definition: stlstrings.cpp:43
Definition: stlstrings.h:237
CString FilterStr(const CString &AString, const CCharset &ValidChars, const CCharset &InvalidChars, const bool ValidateUndefined)
Definition: stlstrings.cpp:1190
char * GetCString(void) const
Definition: stlstrings.cpp:38
CString ShiftStr(const CString &AString, const int Shift)
Definition: stlstrings.cpp:1145
virtual char & First(void)
Definition: stlstrings.h:172
CString UnshieldChars(const CString &AString, const CString &Chars)
Definition: stlstrings.cpp:1650
CString Hex64(const long long int AInteger, const unsigned int Length=16)
Definition: stlstrings.h:434
CString StripDupChars(const CString &AString, const char AChar)
Definition: stlstrings.cpp:1305
int m_Position
Definition: stlstrings.h:215
CString FindReplaceChar(const CString &AString, const char SearchChar, const char ReplaceChar)
Definition: stlstrings.cpp:1358
virtual ~CStringListIterator(void)
Definition: stlstrings.h:232
CString & Clear(void)
Definition: stlstrings.cpp:64
CString LowerCase(const CString &AString)
Definition: stlstrings.h:347
CString Hex32(const unsigned int AInteger)
Definition: stlstrings.h:417
long long int ParseMemSizeStr64(const CString &AString, long long int &UnitSize, char &UnitChar)
Definition: stlstrings.cpp:1407
CString MemSizeStr(const long long int Value, long long int &UnitSize, CString &UnitSuffix)
Definition: stlstrings.cpp:1482
Definition: stlstrings.h:163
void ParseStr(const CString &AString, const CString &Delimiters, CStringList &SubStrings)
Definition: stlstrings.cpp:1258
static const CString ALPHABET_NULL_CHAR
Definition: stlstrings.h:271
CString GetEOL(void)
Definition: stlstrings.cpp:161
void Fill(const char AChar)
Definition: stlstrings.cpp:308
int m_Line
Definition: stlstrings.h:214
CString CheckFirstChar(const CString &AString, const char AChar)
Definition: stlstrings.cpp:1329
CCharIterator(const CCharIterator &ACharIterator)
Definition: stlstrings.h:182
CString m_Alphabet
Definition: stlstrings.h:144
virtual ~CCharIterator(void)
Definition: stlstrings.h:183
std::vector< CString * > m_Strings
Definition: stlstrings.h:101
virtual char & Last(void)
Definition: stlstrings.h:176
CCharIterator(void)
Definition: stlstrings.h:181
CString ShieldChars(const CString &AString, const CString &Chars)
Definition: stlstrings.cpp:1621