⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cpp

📁 自己编写的一个IC卡读卡工具,用于读取卡内资料.
💻 CPP
📖 第 1 页 / 共 2 页
字号:
    CmbValFan->Items->Clear();
    for (int i=0;i!=16;++i)
    {
        CmbFan->Items->Add(IntToStr(i));
        CmbWriteFan->Items->Add(IntToStr(i));
        CmbValFan->Items->Add(IntToStr(i));
    }
    CmbFan->ItemIndex = 0;

    CmbBlock->Items->Clear();
    for (int i=0;i!=4;++i)
    {
        CmbBlock->Items->Add(IntToStr(i));
    }

    CmbBlock->Items->Add("选择所有块");
    CmbBlock->ItemIndex = 4;

    RC500USB_init();
    StatusBar->Panels->Items[0]->Text = "已连接...";

    BtnInitEdit->Click();

}
//---------------------------------------------------------------------------

void __fastcall TFrmMain::BtnInitEditClick(TObject *Sender)
{
    TEdit *p;
    for (int i=0;i!=GroupBox1->ControlCount;++i)
    {
        if(GroupBox1->Controls[i]->ClassNameIs("TEdit"))
        {
            p=dynamic_cast<TEdit *>(GroupBox1->Controls[i]);
            p->Text= "00";
            p->MaxLength=2;
            //ShowMessage(p->Name);
        }
    }
}
//---------------------------------------------------------------------------



void __fastcall TFrmMain::CmbWriteFanSelect(TObject *Sender)
{
    CmbWriteBlock->Items->Clear();
    for (int i=0;i!=4;++i)
    {
        if (i==0 && CmbWriteFan->ItemIndex==0)
            continue;
        CmbWriteBlock->Items->Add(IntToStr(i));
    }
    CmbWriteBlock->ItemIndex = 0;
}
//---------------------------------------------------------------------------
void __fastcall TFrmMain::CmbValFanSelect(TObject *Sender)
{
    CmbValBlock->Items->Clear();
    for (int i=0;i!=3;++i)
    {
        if (i==0 && CmbValFan->ItemIndex==0)
            continue;
        CmbValBlock->Items->Add(IntToStr(i));
    }
    CmbValBlock->ItemIndex = 0;
}
//---------------------------------------------------------------------------
void __fastcall TFrmMain::BtnReadValClick(TObject *Sender)
{
    try
    {

        if (CmbValFan->Text.Trim()=="")
        {
            ShowMessage("请选择扇区!");
            return;
        }
        if (CmbValBlock->Text.Trim()=="")
        {
            ShowMessage("请选择区块!");
            return;
        }

        if (!QueryCard()) return;

        int iFan(0),iBlock(0);
        long lValue;

        iFan = CmbValFan->Text.ToInt() ;
        iBlock = CmbValBlock->Text.ToInt() ;

        if(RC500USB_authkey(0,szpwd,iFan)!=0)
        {
            ShowMessage("验证错误");
            return;
        }

        if(RC500USB_readval(iFan*4+iBlock,lValue)!=0)
        {
            ShowMessage("读取数据错误");
            return;
        }

        RC500USB_halt();    //挂起
        AnsiString s;
        s = "00000000" + IntToHex((int)lValue,2);
        s = s.LowerCase();
        EdtValue->Text = "0x" + RightStr(s,8);

    }
    catch(Exception &e)
    {
        ShowMessage(e.Message);
    }

}
//---------------------------------------------------------------------------

void __fastcall TFrmMain::BtnWriteValClick(TObject *Sender)
{
    try
    {
        if (CmbValFan->Text.Trim()=="")
        {
            ShowMessage("请选择扇区!");
            return;
        }
        if (CmbValBlock->Text.Trim()=="")
        {
            ShowMessage("请选择区块!");
            return;
        }

        if (!QueryCard()) return;

        int iFan(0),iBlock(0);
        long lValue;

        iFan = CmbValFan->Text.ToInt() ;
        iBlock = CmbValBlock->Text.ToInt() ;

        if(RC500USB_authkey(0,szpwd,iFan)!=0)
        {
            ShowMessage("验证错误");
            return;
        }

        AnsiString s;
        s=EdtValue->Text.LowerCase();
        if (LeftStr(s,2) != "0x" )
            s = "0x" + s;

        lValue=StrToInt(s);
        if(RC500USB_writeval(iFan*4+iBlock,lValue)!=0)
        {
            ShowMessage("写入数据错误");
            return;
        }

        RC500USB_halt();    //挂起

        MemResult->Clear();
        MemResult->Lines->Add("写入 扇区:" + IntToStr(iFan) + "  块:" + IntToStr(iBlock) + "    数值如下:");
        MemResult->Lines->Add(s);

    }
    catch(Exception &e)
    {
        ShowMessage(e.Message);
    }

}
//---------------------------------------------------------------------------

bool TFrmMain::QueryCard(void)
{
    if(RC500USB_request (1,type)!=0) 		//对读卡器进行操作
    {
        ShowMessage("感应区内没有卡");
        return false;
    }

	if(RC500USB_anticoll(0,snr)!=0)			//进行防碰撞选择,成功则返回卡号
    {
        ShowMessage("防碰撞错误");
        return false;
    }

	if(RC500USB_select(snr,size)!=0)		//选择卡
    {
        ShowMessage("选择卡错误");
        return false;
    }
    return true;
}
void __fastcall TFrmMain::Button1Click(TObject *Sender)
{

    __try
    {
        FrmRegIC = new TFrmRegIC(this,"123456","中国赏枯在地","","","");
        FrmRegIC->ShowModal();
        if (FrmRegIC->ModalResult == mrOk)
        {
            if (FrmRegIC->Result)
            {

            }
            else
            {


            }
        }
        else
        {

        }
    }
    __finally
    {
        delete FrmRegIC;
        FrmRegIC=NULL;
    }

}
//---------------------------------------------------------------------------
void __fastcall TFrmMain::Button2Click(TObject *Sender)
{
    __try
    {
        FrmTest = new TFrmTest(this);
        FrmTest->ShowModal();
    }
    __finally
    {
        delete FrmTest;
        FrmTest=NULL;
    }
}
//---------------------------------------------------------------------------










void __fastcall TFrmMain::Button3Click(TObject *Sender)
{


    AnsiString s;
    s=Edit16->Text.Trim();
    if (s.Length()!=47)
    {
        ShowMessage("格式不对!");
        return;
    }
    for (int i=0;i!=48;i+=3)
    {
        if (s.c_str()[i]==NULL ||
            s.c_str()[i+1]==NULL)
        {
            ShowMessage("格式不对!");
            return;
        }
        if ((i+2) >=47) break;
        if (s.c_str()[i+2]!=' ')
        {
            ShowMessage("格式不对!");
            return;
        }
    }

//    unsigned char *p;
//
//
//
//    ShowMessage(s.Length());
//    p= new unsigned char[s.Length()];
//    for(int i=0;i<s.Length();i++)
//    {
//        ShowMessage(s.c_str()[i]);
//        if ( != ''   )
//        if (s.c_str()[i] != '')
//            p[i]= s.c_str()[i];
//    }
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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