基本信息
源码名称:身份证号导入工具
源码大小:13.77M
文件格式:.rar
开发语言:C/C++
更新时间:2021-08-14
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 3 元 
   源码介绍
手动录入身份证号,或从读卡器读取信息录入到数据库,便于做白名单等处理

void CCardReader_XZX::run()
{
    m_port = Syn_FindReader();

    QString currentPath = QGuiApplication::applicationDirPath() "/dataBase/ID_Photos/";
    QDir dir;
    if (!dir.exists(currentPath))
    {
        if (!dir.mkpath(currentPath))
            return;
    }

    QByteArray curPath= currentPath.toLatin1();

    //设置照片路径    iOption 路径选项    0=C:    1=当前路径    2=指定路径
    //cPhotoPath    绝对路径,仅在iOption=2时有效
    Syn_SetPhotoPath(2, curPath.data());
    Syn_SetPhotoType(1); //0 = bmp ,1 = jpg , 2 = base64 , 3 = WLT ,4 = 不生成
    Syn_SetPhotoName(2); // 生成照片文件名 0=tmp 1=姓名 2=身份证号 3=姓名_身份证号

    Syn_SetSexType(1);    // 0=卡中存储的数据    1=解释之后的数据,男、女、未知
    Syn_SetNationType(1);// 0=卡中存储的数据    1=解释之后的数据 2=解释之后加"族"

    int openRet = Syn_OpenPort(m_port);//open card reader
    if(openRet != 0)
    {
        qDebug() << "打开读卡器失败...";
        sendMessage("打开读卡器失败!");
        return;
    }
    else
        sendMessage("打开读卡器成功!");

    setReadState(true);
    changReadState(true);

    while(m_ReadState)
    {
        //每次都重新打开身份证读卡器,避免身份证插拔后打开失败
        openRet = Syn_OpenPort(m_port);//open card reader
        if(openRet != 0)
        {
            msleep(100);
            continue;
        }

        bool flag = ValidateCard();

        if (!flag)
        {
            msleep(200);
            continue;
        };

        IDInfo m_idi;

        //读取身份证信息
        IDCardData info;
        char szPath[_MAX_PATH]={0};
        int ret = Syn_ReadMsg( m_port, 0, &info );
        //        int ret = Syn_ReadFPMsg( m_port , 0 , &info , szPath);

        if(ret==0)
        {
            m_idi.strID=QString::fromLocal8Bit(info.IDCardNo).trimmed();
            m_idi.strName=QString::fromLocal8Bit(info.Name).trimmed();
            m_idi.strSex=QString::fromLocal8Bit(info.Sex).trimmed();
            m_idi.strNation=QString::fromLocal8Bit(info.Nation).trimmed();
            m_idi.strBirthday=QString::fromLocal8Bit(info.Born).trimmed();
            m_idi.strAddress=QString::fromLocal8Bit(info.Address).trimmed();
            m_idi.strStartDate=QString::fromLocal8Bit(info.UserLifeBegin).trimmed();
            m_idi.strEndDate=QString::fromLocal8Bit(info.UserLifeEnd).trimmed();
            m_idi.strDepartment=QString::fromLocal8Bit(info.GrantDept).trimmed();
            m_idi.strPhotoFile=QString::fromLocal8Bit(info.PhotoFileName).trimmed();

            QVariant DataVar;
            DataVar.setValue(m_idi);
            emit sendCardInfo(DataVar);
            emit sendMessage("读卡成功!");
        }

        Syn_ClosePort(m_port);
        msleep(200);

    }
}