Polygon Crucher SDK - Documentation
Documentation
Loading...
Searching...
No Matches
StringTools.h
1#ifndef STRING_TOOLS_H
2#define STRING_TOOLS_H
3
4#include <locale.h>
5
6BEGIN_MOOTOOLS_NAMESPACE
7
8class DLL_TOOLSFUNCTION CSwitchLocale
9{
10 int category;
11 CXString prevloc;
12
13public:
14 CSwitchLocale(int category = LC_ALL, LPCTSTR newlocal = _T("English"));
16};
17
18class DLL_TOOLSFUNCTION CXStringMatch
19{
20public:
21 typedef enum Mode
22 {
23 REGULAR_EXPRESSION = 1,
24 MATCH_ONE_WORD,
25 MATCH_ALL_WORDS,
26 } Mode;
27
28protected:
29 typedef enum _Operator
30 {
31 NONE_OPERATOR = 0,
32 OR_OPERATOR = 1,
33 AND_OPERATOR = 2,
34 AND_NOT_OPERATOR = 3
35 } Operator;
36
37 typedef struct WordOperation
38 {
39 CXString word;
40 Operator logop;
41 bool result;
42 } WordOperation;
43
44 static CHashTable<TCHAR> hashChar;
46 Mode mode;
47 bool matchCase, wholeStringMatch;
48
49 bool IsChar(const CXString& txt, char lookFor, int index);
50 bool InitExpression(const CXString& lookWhat, Mode mode);
51 // int ReplaceCharBySpecialChar(CXString& txt, TCHAR removeChar);
52 void RemoveSpecialChar(CXString& txt, TCHAR exceptChar = 0);
53 bool ExtractWords(CXString& txt);
54 bool AddExpression(const CXString& word, Operator logop);
55 bool ShouldRecurse(const CXString& word);
56 bool InternalMatch(const CXStringArray& lookIn, Mode mode);
57 bool MatchWord(const CXString& lookWhat, const CXStringArray& lookIn);
58
59public:
61
62 // Use these methods to perform a same search on different items
63 bool PrepareMatch(const CXString& lookWhat, Mode mode, bool matchCase); // Return false if the expression is invalid
64 bool Match(const CXString& lookIn);
65 bool Match(const CXStringArray &refLookIn);
66
67 // Use these methods to perform a single search on different items
68 bool Match(const CXString& lookWhat, const CXString& lookIn, Mode mode, bool matchCase);
69 bool Match(const CXString& lookWhat, const CXStringArray& lookIn, Mode mode, bool matchCase);
70};
71
72//! @class CExLCString
73//! @brief CExLCString is a class to perform uncase comparison between CXString
74class DLL_TOOLSFUNCTION CExLCString : public CXString
75{
76public:
78 CExLCString(const CXString& ref);
79 CExLCString& operator=(const CXString& ref);
80 int Find(const CXString& ref, int nIndex = 0) const;
81};
82
83template<> class CHashMethods<CExLCString> : public CHashMethods<CXString> {};
84
85typedef enum _CompareStringsEnum
86{
87 STRINGS_COMPARE_NO_CASE = 1,
88 STRINGS_COMPARE_CASE,
89 STRINGS_COMPARE_LANGUAGE_NO_CASE,
90 STRINGS_COMPARE_LANGUAGE_CASE,
91 STRINGS_COMPARE_FILENAMES, // Order filename, taking the digit value into account: file0001, file2, file03...
93
94//DLL_TOOLSFUNCTION int SScanFS(int numArgs, LPCTSTR string, LPCTSTR format, ...);
95DLL_TOOLSFUNCTION CXString CleanText(const CXString& text);
96DLL_TOOLSFUNCTION CXString CleanEnhancedText(const CXString& text);
97DLL_TOOLSFUNCTION void RemoveDiacritics(CXString& text); // Remove ιθο... and convert to eei...
98#if !defined(__LINUX__) && !defined(__APPLE__)
99DLL_TOOLSFUNCTION void RemoveDiacritics(CXStringA& text);
100#endif
101DLL_TOOLSFUNCTION void CapitalizeText(CXString& text);
102DLL_TOOLSFUNCTION void SortStringArray(CXStringArray& strings, CompareStringsEnum mode = STRINGS_COMPARE_NO_CASE);
103DLL_TOOLSFUNCTION void CopyStringArray(CXStringArray& strings, const CXStringArray& srcstrings, bool removeAll, bool lowerCase = FALSE);
104DLL_TOOLSFUNCTION int StringFind(const CXString& mainstring, const CXString& stringtofind, bool matchCase);
105DLL_TOOLSFUNCTION int StringToHash(const CXStringArray& strings, CHashTable<CXString>& hash, bool matchCase = false, bool addToHash = false);
106DLL_TOOLSFUNCTION int FindInStringArray(const CXStringArray& strings, const CXString& string, bool matchCase);
107DLL_TOOLSFUNCTION int ExtractString(const CXString& txt, CXStringArray& strarray);
108DLL_TOOLSFUNCTION CXString ExtractString(unsigned int ID1, unsigned int ID2, unsigned int value, bool addCarriageReturn);
109DLL_TOOLSFUNCTION CXString ExtractString(unsigned int ID, unsigned int value, bool addCarriageReturn);
110DLL_TOOLSFUNCTION CXString LoadResourceString(unsigned int ID, LPCTSTR defaultTxt = NULL);
111DLL_TOOLSFUNCTION CXString YesNoString(unsigned int ID, bool yes, bool addCarriageReturn = FALSE);
112DLL_TOOLSFUNCTION CXString YesNoString(bool yes);
113DLL_TOOLSFUNCTION CXString FormatString(unsigned int ID, ...);
114DLL_TOOLSFUNCTION int StringFindNoCase(const CXString& findin, const CXString& lookFor, bool findAtTheBeginningOnly);
115DLL_TOOLSFUNCTION bool StringRemoveNoCase(CXString& src, const CXString& remove, bool removeAtTheBeginningOnly);
116DLL_TOOLSFUNCTION CXString FormatStringEx(unsigned int ID, LPCTSTR formater, bool addCarriageReturn, ...);
117DLL_TOOLSFUNCTION CXString FormatString(LPCTSTR ID, ...);
118DLL_TOOLSFUNCTION int StringCompare(const CXString& string1, const CXString& string2, bool matchCase);
119DLL_TOOLSFUNCTION CXString LowerCaseString(const CXString& lowercase);
120DLL_TOOLSFUNCTION CXString GetFileSizeString(fileuint filesize);
121DLL_TOOLSFUNCTION CXString GetUnitText(UNIT_MODE unit, bool shortTxt);
122#ifndef MOOTOOLS_CRUNCHERSDK
123DLL_TOOLSFUNCTION bool ConvertText2Time(const CXString& txttime, CXTime& time);
124DLL_TOOLSFUNCTION CXString GetFileDateString(const CXTime& time, bool includeDate, bool includeHours, bool textualDate);
125DLL_TOOLSFUNCTION CXString Key2String(unsigned int key, unsigned int modifier);
126#endif
127DLL_TOOLSFUNCTION CXString GetUniqueName(CHashTable<CXString>& hash, const CXString& srcname, int maxlength = -1, bool addOnlyDigits = false);
128DLL_TOOLSFUNCTION CXString CText(const CXString& text);
129DLL_TOOLSFUNCTION CXString DText(const CXString& text);
130
131#ifdef MOOTOOLS_CRUNCHERSDK
132bool LoadSDKResource(const CXString& resourceName, unsigned int langid = 1033); // Load a file containing resource strings in the given specified langage. langid are windows lang ID.
133#endif
134
135
136END_MOOTOOLS_NAMESPACE
137
138#endif // STRING_TOOLS_H
The class defines an x, y, z 3D point which can use int, float or double.
Definition 3DPoint.h:27
CExLCString is a class to perform uncase comparison between CXString.
Definition StringTools.h:75
Definition Hash.h:146
Definition StringTools.h:9
CXStringArray implement an array of CXString.
Definition XStringArray.h:25
Definition StringTools.h:19
Definition XTime.h:18