sysutil.h

来自「使用C++Builder开发的常住人口管理系统」· C头文件 代码 · 共 101 行

H
101
字号
#ifndef SYSUTIL_H
#define SYSUTIL_H
#include <cstdio>
#include <vcl.h>
//#include "dstring.h"
using namespace std;
class SysUtil
{
   public:
           static    bool JudgeSfzID(AnsiString SfzID);    //身份证的识别
           static    bool IsNumberString(AnsiString numstring);
           static    bool createFile(char *filename);

};

bool SysUtil::createFile(char *filename)
{
  FILE *fp;
  if((fp=fopen(filename,"rb+"))==NULL)                 //不存在则新建一个
  {
    if((fp=fopen(filename,"wb+"))==NULL)
    {  ShowMessage("创建文件失败!!");
       return false;
    }

  }
  fclose(fp);
  return true;
}

bool SysUtil::IsNumberString(AnsiString numstring)
{
   bool isNumber=true;
   for(int i=0;i<numstring.Length();i++)
   {
     if((numstring.SubString(i,1)>'9')||(numstring.SubString(i,1)<'0'))
     {
        isNumber=false;     //存在非法字符,则isNumber设为false
        break;
     }
   }
   if (numstring.IsEmpty())
   {
       isNumber=false;
   }

   return isNumber;
}

bool SysUtil::JudgeSfzID(AnsiString SfzID)
{
   bool Error=false;
   switch (SfzID.Length())
   {
     case 15:                   //15位的身份证号,应为全数字
               for(int i=1;i<=15;i++)
               {
                 if((SfzID.SubString(i,1)>'9')||(SfzID.SubString(i,1)<'0'))
                 {
                    Error=true;    //存在非法字符,则Error设为true
                    break;
                 }
               }
               break;
     case 18:                   // 18位的身份证号,前17位应为数字
               for(int i=1;i<=17;i++)
               {
                 if((SfzID.SubString(i,1)>'9')||(SfzID.SubString(i,1)<'0'))
                 {
                    Error=true;     //存在非法字符,则Error设为true
                    break;
                 }
               }
               //最后一位可能是英文,但只可能是‘x’
               if((SfzID.SubString(18,1)>'9')||(SfzID.SubString(18,1)<'0'))
                 if(SfzID.SubString(18,1)!='x')
                   Error=true;
               break;
     default:     //长度不符
                 ShowMessage("身份证号码长度不符!!");
                 return false;
   }
   //Error为true,则存在非法字符
   if(Error) ShowMessage("身份证号存在非法字符!!");
   else
   {
      //ShowMessage("身份证号合法!!");
      return true;
   }
   return false;
}





//-----------------
#endif


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?