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

📄 mainunit.cpp

📁 一个非常实用的号码魔方工具
💻 CPP
📖 第 1 页 / 共 2 页
字号:
            }
        }
        Screen->Cursor = crDefault ;
    }
    delete sList ;
    ShowOldCount() ;	
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::bitClearErrorMobileClick(TObject *Sender)
{
	Screen->Cursor = crHourGlass;
	AnsiString sMobile;
    int iNum, iError = 0 ;
    for( int i = 0; i < lstOldMobile->Count;  ++i )
    {
		sMobile = lstOldMobile->Items->Strings[i];
		if ( CheckMobile(sMobile) == -1 )
		{
			++iError;
			lstOldMobile->Items->Delete(i);
			--i;
		}
    }
	ShowOldCount();
	Screen->Cursor = crDefault;
    ShowMessage("共有 " + AnsiString(iError) + " 号码错误!");	
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::bitClearOldMobileClick(TObject *Sender)
{    
	Screen->Cursor = crHourGlass;
	lstOldMobile->Clear();
	ShowOldCount();
    Screen->Cursor = crDefault;
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::bitUpNumberClick(TObject *Sender)
{
	MoveMobileNumber( lstNewMobile, lstOldMobile );
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::bitDownNumberClick(TObject *Sender)
{
	MoveMobileNumber( lstOldMobile, lstNewMobile );
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::bitUpMobileTypeClick(TObject *Sender)
{
	MoveMobileType( lstNewMobile, lstOldMobile );
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::bitDownMobileTypeClick(TObject *Sender)
{
	MoveMobileType( lstOldMobile, lstNewMobile );
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::bitUpAllMobileNumberClick(TObject *Sender)
{
	MoveAllMobile( lstNewMobile, lstOldMobile );
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::bitDownAllMobileNumberClick(TObject *Sender)
{
	MoveAllMobile( lstOldMobile, lstNewMobile );
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::bitMobileSortClick(TObject *Sender)
{        
	Screen->Cursor = crHourGlass ;
    lstNewMobile->Sorted = true ;
    lstNewMobile->Sorted = false ;  
	ShowNewCount() ;
    Screen->Cursor = crDefault ;
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::bitUnSortMobileClick(TObject *Sender)
{
    TStringList* sList = new TStringList ;
    Screen->Cursor = crHourGlass ;
    sList->Text = lstNewMobile->Items->Text ;
    int iRnd ;
    lstNewMobile->Clear() ;
    for( int i = 0; i < sList->Count; ++i )
    {
        iRnd = random( sList->Count ) ;
        lstNewMobile->Items->Add( sList->Strings[iRnd] )  ;
        sList->Delete(iRnd) ;
        --i ;
    }
    ShowNewCount() ;
    Screen->Cursor = crDefault ;
    delete sList ;	
}
//---------------------------------------------------------------------------
/*
  滤除号码     bFlag  == true
  删除在文件中找到的号码

  过滤号码     bFlag  == false
  删除在文件中找不到的号码
*/
void __fastcall TfrmMain::bitSieveNumClick(TObject *Sender)
{
    TBitBtn * btn = dynamic_cast<TBitBtn*>(Sender);
    bool bFlag = false;
    if( btn->Tag == 1 )
		bFlag = true;
		
    TStringList* sList = new TStringList ;
    sList->Sorted = true ;
    int iIndex ;
    if( OpenDialog1->Execute() )
    {                   
        Screen->Cursor = crHourGlass ;
        for( int i = 0; i < OpenDialog1->Files->Count; ++i )
        {
            sList->Clear() ;
            sList->LoadFromFile(OpenDialog1->Files->Strings[i]) ;
            for( int j = 0; j < lstNewMobile->Count; ++j )
            {
                if( sList->Find(lstNewMobile->Items->Strings[j], iIndex) == bFlag )
                {
					lstNewMobile->Items->Delete(j--) ;
                }
            }
        }      
        ShowNewCount() ;
        Screen->Cursor = crDefault ;
    }
    delete sList ;	
}
//---------------------------------------------------------------------------
/*
	清除重号
	删除重复的号码

	过滤重号
	保留重复的号码
*/
void __fastcall TfrmMain::bitClearRepeatClick(TObject *Sender)
{
    TBitBtn * btn = dynamic_cast<TBitBtn*>(Sender);
    bool bFlag = false;
    if( btn->Tag == 1 )
		bFlag = true;
		
    map<AnsiString, int> m_mod ;
    Screen->Cursor = crHourGlass ;
    for( int i = 0; i < lstNewMobile->Count; ++i )
    {
        m_mod[lstNewMobile->Items->Strings[i]]++ ;
    }
    lstNewMobile->Clear() ;
    map<AnsiString, int>::iterator iter = m_mod.begin() ;
    while ( iter != m_mod.end() )
    {
        if( bFlag )   
            lstNewMobile->Items->Add(iter->first);
        else if( iter->second > 1 )  
            lstNewMobile->Items->Add(iter->first);
            
        ++iter ;
    }
    ShowNewCount() ;
    Screen->Cursor = crDefault ;	
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::bitClearNewMobileClick(TObject *Sender)
{
	Screen->Cursor = crHourGlass;
	lstNewMobile->Clear();
	ShowNewCount();
    Screen->Cursor = crDefault;	
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::bitExportMobileClick(TObject *Sender)
{
	char pSmg[2][50] = { "数据打开失败不能分类导出,确定要继续吗?", "数据正在读取不能正确分类导出,确定要继续吗?" };
	int nOutType = -1;
	int nDif = -1;
	bool m_bOut = false;
	if ( m_isLoadData == 1 || m_isLoadData == 2 )    // 打开数据库失败 , 正在读取数据
	{
		if ( MessageBox( this->Handle,  pSmg[m_isLoadData-1], "提示!", MB_YESNO ) == IDYES )
		{
            m_bOut = true;
        }
	}else if ( m_isLoadData == 3 )   // 读取数据完成
	{
		TfrmOutMobileToFile * frm = new TfrmOutMobileToFile( this, nOutType, nDif );
		if( frm->ShowModal() == mrOk )
		{      
		    m_bOut = true;
		} // end if
		delete frm;
    }

	if ( m_bOut && SaveDialog1->Execute() )
	{              
		Screen->Cursor = crHourGlass;
		OutDataMobile( nOutType, nDif, SaveDialog1->FileName );
		Screen->Cursor = crDefault;
		lstNewMobile->Clear();
		ShowNewCount(); 
	}
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::OutDataMobile( int nType, int nDif, AnsiString sFileName )
{
    AnsiString sExt = ExtractFileExt( sFileName );
    sFileName = ChangeFileExt( sFileName, "" );
    AnsiString sMobile, m_sFileName;
    AnsiString AreaParentName, AreaName, CardType;
    for( int i = 0; i < lstNewMobile->Items->Count; ++i )
    {
        sMobile = lstNewMobile->Items->Strings[i];
        FindData( sMobile.SubString(1,7), AreaParentName, AreaName, CardType );
		m_sFileName = sFileName;
		if ( nType == 0 )    // 按省份
		{
			 m_sFileName += "_" + AreaParentName;
		}else if ( nType == 1 )   // 按市
		{                    
			 m_sFileName += "_" + AreaParentName + "_" + AreaName;
        }
        if( nDif == 1 )
            m_sFileName += "_" + CardType;
        WriteFileList( m_sFileName+sExt, sMobile );
    }
}
void __fastcall TfrmMain::FindData( AnsiString MFID, AnsiString & AreaParentName, AnsiString & AreaName, AnsiString & CardType )
{
    AreaParentName = "未知";
    AreaName       = "未知";
    CardType       = "未知";
    AreaPack m_pack;
    map< AnsiString, AreaPack >::iterator iter = m_Areamap.find( MFID );
    if( iter != m_Areamap.end() )
    {
        iter->first;
        m_pack         = iter->second;
        AreaParentName = m_pack.AreaParentName;
        AreaName       = m_pack.AreaName;
        CardType       = m_pack.CardType;
    }
}
void __fastcall TfrmMain::N3Click(TObject *Sender)
{
	TfrmAbout * frm = new TfrmAbout( this );
	frm->ShowModal();
	delete frm;
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::H1Click(TObject *Sender)
{
	//ShellExecute(NULL, NULL, "IEXPLORE","help\\help.htm", NULL, SW_SHOW);
	//ShellExecute(NULL, NULL, "OPEN","help\\help.htm", NULL, SW_SHOWDEFAULT);
	WinExec( "Notepad.exe help\\help.txt", SW_SHOW);
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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