[DEV] add capabilities at string

This commit is contained in:
Edouard DUPIN 2013-06-24 07:55:49 +02:00
parent c90b9d1b39
commit fac7b19bf8
3 changed files with 29 additions and 1 deletions

View File

@ -46,6 +46,26 @@ etk::UString::UString(void)
} }
etk::UString::UString(const char* _data, unicode::charset_te _inputCharset)
{
// TODO : Change this ...
etk::Vector<char> transformData;
while (*_data != '\0') {
transformData.PushBack(*_data);
_data++;
}
m_data.Clear();
if (unicode::EDN_CHARSET_UTF8==_inputCharset) {
unicode::convertUtf8ToUnicode(transformData, m_data);
} else {
unicode::convertIsoToUnicode(_inputCharset, transformData, m_data);
}
if( 0 == m_data.Size()
|| m_data[m_data.Size()-1]!='\0') {
m_data.PushBack('\0');
}
}
// single element adding // single element adding
etk::UString::UString(const bool _inputData, etk::UString::printMode_te _mode, bool _preset) etk::UString::UString(const bool _inputData, etk::UString::printMode_te _mode, bool _preset)
@ -587,6 +607,11 @@ void etk::UString::Add(int32_t _currentID, const uniChar_t _inputData)
Add(_currentID, data); Add(_currentID, data);
} }
void etk::UString::Append(const etk::UniChar& _inputData)
{
m_data.PushBack(_inputData);
}
void etk::UString::Remove(int32_t _currentID, int32_t _len) void etk::UString::Remove(int32_t _currentID, int32_t _len)
{ {

View File

@ -13,6 +13,7 @@
#include <etk/Stream.h> #include <etk/Stream.h>
#include <etk/Vector.h> #include <etk/Vector.h>
#include <etk/Char.h> #include <etk/Char.h>
#include <etk/unicode.h>
namespace etk namespace etk
{ {
@ -39,6 +40,7 @@ namespace etk
// single element adding // single element adding
UString(const bool _inputData, printMode_te _mode=printModeString, bool _preset=false); UString(const bool _inputData, printMode_te _mode=printModeString, bool _preset=false);
UString(const uniChar_t _inputData); UString(const uniChar_t _inputData);
UString(const char* _data, unicode::charset_te _inputCharset);
UString(const float _inputData); UString(const float _inputData);
UString(const double _inputData); UString(const double _inputData);
UString(const int8_t& _inputData, printMode_te _mode=printModeDecimal, bool _preset=false) { Set((int64_t)_inputData, _mode, _preset); }; UString(const int8_t& _inputData, printMode_te _mode=printModeDecimal, bool _preset=false) { Set((int64_t)_inputData, _mode, _preset); };
@ -143,6 +145,7 @@ namespace etk
void Add(int32_t _currentID, const uniChar_t _inputData); void Add(int32_t _currentID, const uniChar_t _inputData);
void Remove(int32_t _currentID, int32_t _len); void Remove(int32_t _currentID, int32_t _len);
void Clear(void); void Clear(void);
void Append(const etk::UniChar& _inputData);
etk::Vector<etk::UniChar> GetVector(void); etk::Vector<etk::UniChar> GetVector(void);
uniChar_t* pointer(void) { return &m_data[0]; }; uniChar_t* pointer(void) { return &m_data[0]; };

View File

@ -28,7 +28,7 @@ namespace unicode {
EDN_CHARSET_ISO_8859_11, EDN_CHARSET_ISO_8859_11,
EDN_CHARSET_ISO_8859_13, EDN_CHARSET_ISO_8859_13,
EDN_CHARSET_ISO_8859_14, EDN_CHARSET_ISO_8859_14,
EDN_CHARSET_ISO_8859_15, EDN_CHARSET_ISO_8859_15
} charset_te; } charset_te;
// transform ISO <==> Unicode // transform ISO <==> Unicode