📄 mystring.cpp
字号:
else
{
for(int i=0;i<len;i++)
{
if(!isdigit(id[i]))
break;
}
if(i<len)
return false;
else
return true;
}
}
/*******************************************************************************/
/*编号列表idlist合法性验证 */
/*******************************************************************************/
bool CMyString::CheckIDList(string &idlist,int &_count)
{
RemoveAllBlank(idlist);
RemoveMiddleBackBias(idlist);
string setIDList="0123456789'/'";
int first,count=0;
first=idlist.find_first_not_of(setIDList);
if(first!=string::npos)
{
CMessageBox::ShowMessage("Input is illegal,please input again !");
return false;
}
if(idlist[0]=='/')
idlist.erase(0,1);
int len=idlist.length();
if(idlist[len-1]!='/')
idlist+="/";
char str[200],*result;
int a[100]={0};
for (int i=0;i<idlist.length();i++)
{
str[i]=idlist[i];
}
str[i]='\0';
i=0;
result=strtok(str,"/");
while(result!=NULL)
{
count++;
a[i]=atoi(result);i++;
result=strtok(NULL,"/");
}
if(count>12)
{
CMessageBox::ShowMessage("Input is too long,please input again !");
return false;
}
for(i=0;i<count;i++)
{
for(int j=i+1;j<count;j++)
{
if(a[i]==a[j])
{
CMessageBox::ShowMessage("Input cannot more than one time !");
return false;
}
}
}
//对id进行升排序
//将升序的数组转化为字符串
string s;
idlist="";
for(i=0;i<count;i++)
{
for(int j=i+1;j<count;j++)
{
if(a[i]>a[j])
{
int temp;
temp=a[j];
a[j]=a[i];
a[i]=temp;
}
}
}
for(i=0;i<count;i++)
{
s=IntToStr(a[i]);
s+="/";
idlist+=s;
}
len=idlist.length();
idlist[len]='\0';
if(count!=_count)
{
CMessageBox::ShowMessage("Do you want to consume as this way ?(Y/N)");
char ch;
do
{
ch=getch();
if(ch=='Y'||ch=='y'||ch=='N'||ch=='n')
{
if(ch=='Y'||ch=='y')
{
_count=count;
return true;
}
else
{
return false;
}
}
else continue;
}while(1);
}
return true;
}
/*******************************************************************************/
/*money合法性验证 */
/*******************************************************************************/
bool CMyString::CheckMoney(string &money)
{
RemoveLeftBlank(money);
RemoveRightBlank(money);
int len=money.length();
int tip=0;
if(len==0)
{
// CMessageBox::ShowMessage("Input cannot be null !");
return false;
}
else
{
for(int i=0;i<len;i++)
{
if(isdigit(money[i])||money[i]=='.'||money[0]=='-')
{
if(money[i]=='.')
tip++;
}
else
{
CMessageBox::ShowMessage("Input must be digit for float !");
return false;
}
}
if(tip>1)
{
CMessageBox::ShowMessage("Input must be digit for float !");
return false;
}
else
{
return true;
}
}
}
/************************************************************************/
/* 字符串转换为整型 */
/************************************************************************/
int CMyString::StrToInt(string str)
{
int istr=atoi(str.c_str());
return istr;
}
/************************************************************************/
/* 字符转换为整型 */
/************************************************************************/
int CMyString::CharToInt(char ch)
{
char str[3];
str[0]=ch;
int istr=atoi(str);
return istr;
}
/************************************************************************/
/* 字符串转换为浮点型 */
/************************************************************************/
float CMyString::StrToFloat(string str)
{
float fstr=atof(str.c_str());
return fstr;
}
/************************************************************************/
/* 浮点型转换为字符串 */
/************************************************************************/
string CMyString::FloatToStr(float f)
{
string str;
char chr[100];
sprintf(chr,"%.2f",f);
str=chr;
return str;
}
/************************************************************************/
/* 整型型转换为字符串 */
/************************************************************************/
string CMyString::IntToStr(int i)
{
string str;
char chr[100];
sprintf(chr,"%d",i);
str=chr;
return str;
}
/************************************************************************/
/* 日期比较 */
/************************************************************************/
int CMyString::DateCompare(string date1,string date2)
{
int result=0;
vector<int> a,b;
GetYMDformDate(date1,a);
GetYMDformDate(date2,b);
for(int i=0;i<3;i++)
{
if(a[i]==b[i])
continue;
else
{
result=a[i]-b[i];
break;
}
}
return result;
}
/************************************************************************/
/* 从日期中提取年月日 */
/************************************************************************/
bool CMyString::GetYMDformDate(string date,vector<int>& a)
{
char temp[10];
int tempdate=0;
int len=date.length();
for (int i=0,j=0;i<10;i++)
{
if (date[i]=='-')//2000-2-2
{
temp[j]='\0';
j=0;
tempdate=atoi(temp);
a.push_back(tempdate);
continue;
}
else if (date[i]!='-')
{
temp[j]=date[i];
j++;
if (i==len-1)
{
temp[j]='\0';
tempdate=atoi(temp);
a.push_back(tempdate);
}
continue;
}
}
return true;
}
/************************************************************************/
/*文件名合法性验证 */
/************************************************************************/
bool CMyString::CheckFileName(string &filename)
{
RemoveAllBlank(filename);
for(int i=0;i<filename.length();i++)
{
if(filename[i]=='/')
filename[i]='\\';
}
if(filename[i-1]!='\\')
filename+="\\";
RemoveMiddleBias(filename);//去除多余的反斜杠
string setFilename=",*|><;?.";
string setPathname="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ /\\";
int first;
first=filename.find_first_of(setFilename);
if (first!=string::npos)
{
CMessageBox::ShowMessage("Path cannot have< , . * | > < ; ? >");
return false;
}
return true;
}
/************************************************************************/
/* 盘符合法性验证 */
/************************************************************************/
bool CMyString::CheckDiskName(string &pathName)
{
string path=pathName;
int drive, curdrive;
RemoveLeftBlank(pathName);
RemoveRightBlank(pathName);
RemoveMiddleBlank(pathName);
if(path[1]==':')//说明有盘符
{
curdrive=_getdrive(); //先将原来工作盘符保存
if (islower(path[0]))
drive=path[0]-'a'+1;
else
drive=path[0]-'A'+1;
if(_chdrive(drive)==-1 )//盘符不存在情况
return false;
_chdrive(curdrive) ;
}
return true;
}
/************************************************************************/
/*创建文件夹 */
/************************************************************************/
bool CMyString::CheckFoundFiles(string &pathname)//pathname是已验证过的
{
int i;
char s[50]={0};
if(access(pathname.c_str(),0)==0)
return true;
sprintf(s,"mkdir %s",pathname.c_str());
i=system(s);//创建路径名为pathname文件夹
if (i)
{
return false;
}
return true;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -