134 lines
2.7 KiB
C++
134 lines
2.7 KiB
C++
#include <ctype.h>
|
||
#include <mdiwin/string.hpp>
|
||
|
||
String::String(int resourceID,HINSTANCE hInstance)
|
||
{
|
||
mnpStr=new char[MaxResourceString];
|
||
::memset(mnpStr,0,MaxResourceString);
|
||
::LoadString(hInstance,resourceID,(LPSTR)mnpStr,MaxResourceString);
|
||
}
|
||
|
||
int String::operator!=(const String &someString)const
|
||
{
|
||
if(!mnpStr && !someString.mnpStr)return 0;
|
||
if(!mnpStr || !someString.mnpStr)return 1;
|
||
return (::strcmp(mnpStr,someString.mnpStr));
|
||
}
|
||
|
||
int String::operator==(const String &someString)const
|
||
{
|
||
if(!mnpStr && !someString.mnpStr)return 1;
|
||
if(!mnpStr || !someString.mnpStr)return 0;
|
||
return (!::strcmp(mnpStr,someString.mnpStr));
|
||
}
|
||
|
||
int String::operator<(const String &someString)const
|
||
{
|
||
if(!mnpStr||!someString.mnpStr)return FALSE;
|
||
return (::strcmp(mnpStr,someString.mnpStr)<0);
|
||
}
|
||
|
||
int String::operator<=(const String &someString)const
|
||
{
|
||
if(!mnpStr||!someString.mnpStr)return FALSE;
|
||
if(*this<someString)return TRUE;
|
||
if(*this==someString)return TRUE;
|
||
return FALSE;
|
||
}
|
||
|
||
int String::operator=(const String &someString)
|
||
{
|
||
int stringLength;
|
||
if(!(stringLength=::strlen(someString.mnpStr)))return 0;
|
||
if(mnpStr)delete mnpStr;
|
||
mnpStr=new char[stringLength+1];
|
||
::strcpy(mnpStr,someString.mnpStr);
|
||
return 1;
|
||
}
|
||
|
||
int String::operator=(const char *someCharStar)
|
||
{
|
||
int stringLength;
|
||
if(!(stringLength=::strlen(someCharStar)))return 0;
|
||
if(mnpStr)delete mnpStr;
|
||
mnpStr=new char[stringLength+1];
|
||
::strcpy(mnpStr,someCharStar);
|
||
return 1;
|
||
}
|
||
|
||
int String::operator+=(const String &someString)
|
||
{
|
||
char *tempStr;
|
||
|
||
if(!someString.mnpStr)return 0;
|
||
if(!mnpStr)
|
||
{
|
||
mnpStr=new char[::strlen(someString.mnpStr)+1];
|
||
::strcpy(mnpStr,someString.mnpStr);
|
||
return 1;
|
||
}
|
||
tempStr=mnpStr;
|
||
mnpStr=new char[::strlen(tempStr)+::strlen(someString.mnpStr)+1];
|
||
::strcpy(mnpStr,tempStr);
|
||
::strcpy(mnpStr+::strlen(tempStr),someString.mnpStr);
|
||
delete tempStr;
|
||
return 1;
|
||
}
|
||
|
||
int String::operator+=(const char *someStr)
|
||
{
|
||
char *tempStr;
|
||
|
||
if(!someStr)return 0;
|
||
if(!mnpStr)
|
||
{
|
||
mnpStr=new char[::strlen(someStr)+1];
|
||
::strcpy(mnpStr,someStr);
|
||
return 1;
|
||
}
|
||
tempStr=mnpStr;
|
||
mnpStr=new char[::strlen(tempStr)+::strlen(someStr)+1];
|
||
::strcpy(mnpStr,tempStr);
|
||
::strcpy(mnpStr+::strlen(tempStr),someStr);
|
||
delete tempStr;
|
||
return 1;
|
||
}
|
||
|
||
int String::reserve(unsigned nBytes)
|
||
{
|
||
if(!nBytes)return 0;
|
||
if(mnpStr)delete mnpStr;
|
||
mnpStr=new char[nBytes];
|
||
::memset(mnpStr,0,nBytes);
|
||
return 1;
|
||
}
|
||
|
||
int String::token(const char *tokenString)
|
||
{
|
||
if(!tokenString)return 0;
|
||
if(!mnpStr)return 0;
|
||
if(::strtok(mnpStr,tokenString))return 1;
|
||
return 0;
|
||
}
|
||
|
||
void String::upper(void)
|
||
{
|
||
char *string=mnpStr;
|
||
|
||
if(!mnpStr)return;
|
||
while(*string)
|
||
{
|
||
*string=::toupper(*string);
|
||
string++;
|
||
}
|
||
}
|
||
|
||
int String::strstr(const char *string)const
|
||
{
|
||
if(!mnpStr)return 0;
|
||
return (int)::strstr(mnpStr,string);
|
||
}
|
||
|
||
|
||
|
||
|