16 #include "dCoreStdafx.h"
17 #include "dClassAlloc.h"
26 D_CORE_API
dString (
const char*
const data);
27 D_CORE_API
dString (
const char*
const data, dInt32 maxSize);
28 D_CORE_API
dString (dInt32 val);
29 D_CORE_API
dString (dUnsigned64 val);
32 char& operator[] (dInt32 index);
33 char operator[] (dInt32 index)
const;
36 bool operator== (
const dString& src)
const;
37 bool operator!= (
const dString& src)
const;
38 bool operator< (
const dString& src)
const;
39 bool operator> (
const dString& src)
const;
40 bool operator<= (
const dString& src)
const;
41 bool operator>= (
const dString& src)
const;
43 D_CORE_API
void operator+= (
const char*
const src);
44 void operator+= (
const dString& src);
46 dString operator+ (
const char*
const src)
const;
49 D_CORE_API dInt32 Find (
char ch, dInt32 from = 0)
const;
50 dInt32 Find (
const dString& subString, dInt32 from = 0)
const;
51 D_CORE_API dInt32 Find (
const char*
const subString, dInt32 from = 0, dInt32 lenght = 0x7ffffff)
const;
53 D_CORE_API
void Replace (dInt32 start, dInt32 size,
const char*
const str, dInt32 strSize);
54 void Replace (dInt32 start, dInt32 size,
const dString& str);
59 D_CORE_API
void ToUpper();
60 D_CORE_API
void ToLower();
61 D_CORE_API dInt32 ToInteger()
const;
62 D_CORE_API dFloat64 ToFloat()
const;
63 D_CORE_API dUnsigned64 ToInteger64()
const;
66 dInt32 Capacity()
const;
67 D_CORE_API
void Expand (dInt32 size);
69 D_CORE_API
void LoadFile (FILE*
const file);
70 dString SubString(dInt32 start = 0, dInt32 size = 0x7fffffff)
const;
72 const char* GetStr ()
const;
75 D_CORE_API dInt32 CalculateSize (
const char*
const data)
const;
76 dInt32 Compare (
const char*
const str0,
const char*
const str1)
const;
77 void CopyData (
char*
const dst,
const char*
const src, dInt32 size)
const;
79 D_CORE_API dInt32 Find (
const char*
const subString, dInt32 stringSize, dInt32 from, dInt32 lenght)
const;
82 char* AllocMem(dInt32 size);
83 void FreeMem (
char*
const ptr);
84 D_CORE_API
dString (
const dString& src,
const char*
const concatenate, dInt32 maxSize);
94 inline char& dString::operator[] (dInt32 index)
98 dAssert (index < m_size);
99 return m_string[index];
102 inline char dString::operator[] (dInt32 index)
const
105 dAssert (index >= 0);
106 dAssert (index < m_size);
107 return m_string[index];
110 inline const char* dString::GetStr ()
const
115 inline dInt32 dString::Size()
const
120 inline dInt32 dString::Find (
const char*
const subString, dInt32 from, dInt32 lenght)
const
122 return Find (subString, CalculateSize(subString), from, lenght);
125 inline dInt32 dString::Find (
const dString& subStream, dInt32 from)
const
127 dAssert (subStream.m_string);
128 return Find (subStream.m_string, subStream.m_size, from, subStream.m_size);
131 inline void dString::Replace (dInt32 start, dInt32 size,
const dString& str)
133 Replace(start, size, str.m_string, str.m_size);
136 inline void dString::operator+= (
const dString& src)
138 *
this += src.m_string;
143 return dString (*
this, src.m_string, src.m_size);
146 inline dString dString::operator+ (
const char*
const copy)
const
148 return dString (*
this, copy, CalculateSize (copy));
152 inline dInt32 dString::Capacity()
const
157 inline void dString::CopyData (
char*
const dst,
const char*
const src, dInt32 size)
const
161 memcpy (dst, src, size);
164 inline dInt32 dString::Compare (
const char*
const str0,
const char*
const str1)
const
168 return strcmp (str0, str1);
172 inline bool dString::operator== (
const dString& src)
const
174 return Compare (m_string, src.m_string) == 0;
177 inline bool dString::operator!= (
const dString& src)
const
179 return Compare (m_string, src.m_string) != 0;
183 inline bool dString::operator< (
const dString& src)
const
185 return Compare (m_string, src.m_string) < 0;
188 inline bool dString::operator> (
const dString& src)
const
190 return Compare (m_string, src.m_string) > 0;
193 inline bool dString::operator<= (
const dString& src)
const
195 return Compare (m_string, src.m_string) <= 0;
198 inline bool dString::operator>= (
const dString& src)
const
200 return Compare (m_string, src.m_string) >= 0;
203 inline dString dString::SubString(dInt32 start, dInt32 size)
const
206 return dString (&m_string[start], size);