29 #define MAX_SHORTSTRING_LENGTH 256 30 #define INVALID_INDEX -1 47 char GetChar(
const int Index)
const;
50 void SetChar(
const int Index,
const char Value);
87 void Fill(
const char AChar);
88 void Print(std::ostream& out);
93 CString(
const std::string& AString);
104 bool ValidIndex(
const int Index)
const;
107 int GetCount(
void)
const;
112 int FindString(
const CString& AString)
const;
113 int Insert(
const CString *AString);
114 int Insert(
const CString& AString);
123 bool AppendFromFile(
const CString& FileName);
124 bool LoadFromFile(
const CString& FileName);
125 bool SaveToFile(
const CString& FileName);
126 void Print(std::ostream& out);
138 #define CHARSET_SIZE (1<<(8*sizeof(char))) 146 void UpdateCharset(
void);
147 void UpdateAlphabet(
void);
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);
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; }
178 virtual bool Match(
const CString& Pattern,
const bool Move =
false);
179 virtual void Print(std::ostream& out) {};
192 virtual int FirstPosition(
void);
193 virtual int ThisPosition(
void);
194 virtual int LastPosition(
void);
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);
217 virtual int FirstPosition(
void);
218 virtual int ThisPosition(
void);
219 virtual int LastPosition(
void);
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);
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;
251 void Insert(
const char AChar);
252 void Insert(
const CString& AString);
254 void Remove(
const char AChar);
255 void Remove(
const CString& AString);
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);
289 {
CString result(AString); result+=BString;
return result; }
292 {
CString result(AString); result+=BChar;
return result; }
295 {
CString result(AChar); result+=BString;
return result; }
298 {
CString result(AString); result+=BInteger;
return result; }
301 {
CString result; result+=AInteger; result+=BString;
return result; }
304 {
CString result(AString); result+=BFloat;
return result; }
307 {
CString result; result+=AFloat; result+=BString;
return result; }
310 {
CString result(AString); result+=BFloat;
return result; }
313 {
CString result; result+=AFloat; result+=BString;
return result; }
316 {
CString result(AString); result+=BCString;
return result; }
319 {
CString result(AString); result+=BString;
return result; }
339 for (
int i = 0, n = AString.
GetLength(); i < n; i++)
342 result[i] = islower(c) ? toupper(c) : c;
350 for (
int i = 0, n = AString.
GetLength(); i < n; i++)
353 result[i] = isupper(c) ? tolower(c) : c;
358 inline char hexChar(
const unsigned char Value)
363 inline char HexChar(
const unsigned char Value)
368 inline CString hex(
const unsigned int AInteger,
const unsigned int Length=8)
371 unsigned int value = AInteger;
372 for (
unsigned int i = 0, j = Length; i < Length; i++)
380 inline CString Hex(
const unsigned int AInteger,
const unsigned int Length=8)
383 unsigned int value = AInteger;
384 for (
unsigned int i = 0, j = Length; i < Length; i++)
394 return hex(AInteger,2*
sizeof(
unsigned char));
399 return Hex(AInteger,2*
sizeof(
unsigned char));
404 return hex(AInteger,2*
sizeof(
unsigned short int));
409 return Hex(AInteger,2*
sizeof(
unsigned short int));
414 return hex(AInteger,2*
sizeof(
unsigned int));
419 return Hex(AInteger,2*
sizeof(
unsigned int));
422 inline CString hex64(
const long long int AInteger,
const unsigned int Length=16)
425 long long int value = AInteger;
426 for (
unsigned int i = 0, j = Length; i < Length; i++)
434 inline CString Hex64(
const long long int AInteger,
const unsigned int Length=16)
437 long long int value = AInteger;
438 for (
unsigned int i = 0, j = Length; i < Length; i++)
446 inline CString hex(
const unsigned char *Buffer,
const unsigned int Length=0)
448 unsigned int length = Length*2;
450 for (
unsigned int i = 0, j = length; i < Length; i++)
458 inline CString Hex(
const unsigned char *Buffer,
const unsigned int Length=0)
460 unsigned int length = Length*2;
462 for (
unsigned int i = 0, j = length; i < Length; i++)
473 const CString& Suffix,
const unsigned int Length);
482 const CCharset& InvalidChars,
const bool ValidateUndefined);
499 const char ReplaceChar);
505 long long int& UnitSize,
char& UnitChar);
508 CString& Guessed,
const bool TryFuzzy =
false);
510 const bool TryFuzzy =
false);
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