#pragma once
|
|
//#include <stdio.h>
|
//#include <stdlib.h>
|
//#include <tchar.h>
|
//#include <memory.h>
|
#include "system/base.hpp"
|
|
class xstring
|
{
|
private:
|
//wchar_t* data;
|
void * data;
|
public:
|
xstring();
|
xstring(const xstring& rhs);
|
|
xstring(int val);
|
xstring(double val);
|
xstring(LPARAM val,bool bdata=false);
|
|
xstring(wchar_t* val, bool shouldSysFree = false);
|
xstring(const wchar_t* val, bool shouldSysFree = false);
|
~xstring();
|
public:
|
operator LPARAM()
|
{
|
return (LPARAM)data;
|
}
|
operator const wchar_t*()
|
{
|
return c_str();
|
}
|
xstring& operator =(const xstring& rhs);
|
xstring& operator =(const wchar_t* rhs);
|
bool operator ==(const wchar_t* rhs);
|
|
bool operator >=(const wchar_t* rhs);
|
bool operator >(const wchar_t* rhs);
|
bool operator <=(const wchar_t* rhs);
|
bool operator <(const wchar_t* rhs);
|
bool operator !=(const wchar_t* rhs);
|
|
bool operator ==(const xstring &rhs);
|
bool operator >=(const xstring& rhs);
|
bool operator >(const xstring& rhs);
|
bool operator <=(const xstring& rhshs);
|
bool operator <(const xstring& rhs);
|
bool operator !=(const xstring& rhs);
|
|
operator bool();
|
public:
|
const wchar_t* c_str(bool bclone = false) const;
|
int length();
|
public:
|
wchar_t* sure(int len);
|
public:
|
//static const wchar_t* concat(const wchar_t* lhs, const wchar_t* rhs);
|
wchar_t at(int index);
|
|
//static xstring concat(xstring && lhs, xstring && rhs);
|
xstring concat(const wchar_t* rhs);
|
|
xstring concat(xstring&& rhs);
|
|
xstring operator +(const wchar_t* rhs);
|
xstring operator +(xstring rhs);
|
|
xstring& operator +=(const wchar_t* rhs);
|
xstring& operator +=(xstring rhs);
|
|
bool isEmpty();
|
|
int find(const xstring & str);
|
|
int find(const wchar_t* str);
|
int find(const wchar_t* str,int pos);
|
|
xstring mid(int start, int len);
|
|
xstring left(int len);
|
xstring right(int len);
|
|
int toInt();
|
__int64 toInt64();
|
double toDouble();
|
xstring toUpper();
|
xstring toLower();
|
xstring trim();
|
xstring ltrim();
|
xstring rtrim();
|
|
bool isNumber();
|
xstring replace(const wchar_t* from, const wchar_t* to);
|
xstring replace(const wchar_t* from, const wchar_t* to, int pos);
|
};
|
xstring operator +(const wchar_t* lhs, const xstring& rhs);
|
|
class bstring : public xstring
|
{
|
public:
|
bstring(const wchar_t* val):xstring(val,true){}
|
};
|