日付・時刻の型判定でtry〜catchを使用するのはなんとなくイヤなんですが、他にいい方法ってあるんでしょうか。
ご存知の方がいらっしゃいましたらお教えください。
//-------------------------
// 日付時刻型のチェック
//-------------------------
bool IsDateTime(AnsiString str)
{
try{
TDateTime dtDateTime = VarToDateTime(str); //StrToDateTimeでもOK
return true;
}catch(...){
return false;
}
}
//-------------------------
// 日付型のチェック
//-------------------------
bool IsDate(AnsiString str)
{
try{
TDate dtDate = StrToDate(str);
return true;
}catch(...){
return false;
}
}
//-------------------------
// 時刻型のチェック
//-------------------------
bool IsTime(AnsiString str)
{
try{
TTime dtTime = StrToTime(str);
return true;
}catch(...){
return false;
}
}
//-------------------------
// 整数型のチェック
//-------------------------
bool IsNumeric(AnsiString str)
{
try{
int i = StrToInt(str);
return true;
}catch(...){
return false;
}
}
//-------------------------
// 英字のチェック
// 英字以外の文字があればfalseを返却
//-------------------------
bool IsAlpha(AnsiString str)
{
for (int i=1;i<str.Length()+1;i++){
if (str[i]>=0x41 && str[i]<=0x5a){ //英大文字
}else{
if (str[i]>=0x61 && str[i]<=0x7a){ //英小文字
}else{
return false;
}
}
}
return true;
}
//-------------------------
// 全角文字のチェック
// 全角文字以外の文字があればfalseを返却
//-------------------------
bool IsWide(AnsiString str)
{
for (int i=0;i<str.Length();i+=2){
if (str.IsLeadByte(i+1)){
}else{
return false;
}
}
return true;
}
DownLoad bcbtips064.lzh 4KB(BCB5)