📄 mainunit.cpp
字号:
}
}
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 + -