409 lines
11 KiB
C++
409 lines
11 KiB
C++
// DLG_User_Inport_LT.cpp : implementation file
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "corpsms.h"
|
|
#include "DLG_User_Inport_LT.h"
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// DLG_User_Inport_LT dialog
|
|
|
|
#include "DLG_Send.h"
|
|
|
|
DLG_User_Inport_LT::DLG_User_Inport_LT(CWnd* pParent /*=NULL*/)
|
|
: CDialog(DLG_User_Inport_LT::IDD, pParent)
|
|
{
|
|
//{{AFX_DATA_INIT(DLG_User_Inport_LT)
|
|
// NOTE: the ClassWizard will add member initialization here
|
|
//}}AFX_DATA_INIT
|
|
|
|
m_pDlgSend = (DLG_Send *)pParent;
|
|
}
|
|
|
|
|
|
void DLG_User_Inport_LT::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(DLG_User_Inport_LT)
|
|
DDX_Control(pDX, IDC_USER_INPORT_LT_USERNAME, m_E_UserName);
|
|
DDX_Control(pDX, IDC_USER_INPORT_LT_JGNAME, m_E_JGName);
|
|
DDX_Control(pDX, IDC_USER_INPORT_LT_JD, m_B_JD);
|
|
DDX_Control(pDX, IDC_USER_INPORT_LT_ININAME, m_E_IniName);
|
|
//}}AFX_DATA_MAP
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(DLG_User_Inport_LT, CDialog)
|
|
//{{AFX_MSG_MAP(DLG_User_Inport_LT)
|
|
ON_BN_CLICKED(IDC_USER_INPORT_LT_JGNAME_SEL, OnUserInportLtJgnameSel)
|
|
ON_BN_CLICKED(IDC_USER_INPORT_LT_ININAME_SEL, OnUserInportLtIninameSel)
|
|
ON_BN_CLICKED(IDC_USER_INPORT_LT_USERNAME_SEL, OnUserInportLtUsernameSel)
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// DLG_User_Inport_LT message handlers
|
|
|
|
void DLG_User_Inport_LT::OnUserInportLtJgnameSel()
|
|
{
|
|
#define FILE_FILTER_TEXT \
|
|
TEXT("Excel Îļþ (*.xls,*.xlsx)\0*.xls\0*.xlsx\0")\
|
|
TEXT("ËùÓÐÎļþ (*.*)\0*.*;\0\0")
|
|
|
|
TCHAR szFile[ 256 ];
|
|
TCHAR szFileB[ 256 ];
|
|
*szFileB = NULL;
|
|
_stprintf( szFile , _T("*.xls") );
|
|
|
|
OPENFILENAME sOpen;
|
|
sOpen.lStructSize = sizeof( sOpen );
|
|
sOpen.hwndOwner = this->m_hWnd ;
|
|
sOpen.Flags = OFN_EXPLORER|OFN_OVERWRITEPROMPT|OFN_HIDEREADONLY;
|
|
sOpen.lpstrFilter = FILE_FILTER_TEXT;
|
|
sOpen.lpstrDefExt = _T("¼Û¸ñ.xls");
|
|
sOpen.lpstrCustomFilter = NULL;
|
|
sOpen.nMaxCustFilter = 0;
|
|
sOpen.lpstrFile = szFile;
|
|
sOpen.nMaxFile = sizeof( szFile );
|
|
sOpen.lpstrFileTitle = szFileB;
|
|
sOpen.nMaxFileTitle = sizeof( szFileB );
|
|
sOpen.lpstrInitialDir = NULL;
|
|
sOpen.lpstrTitle = _T("´ò¿ª¼Û¸ñÎļþ");
|
|
if ( ::GetOpenFileName( &sOpen ) )
|
|
{
|
|
m_E_JGName.SetWindowText(sOpen.lpstrFile);
|
|
return ;
|
|
}
|
|
}
|
|
|
|
void DLG_User_Inport_LT::OnUserInportLtIninameSel()
|
|
{
|
|
#define FILE_FILTER_TEXT2 \
|
|
TEXT("Ini Îļþ (*.ini)\0*.ini\0")\
|
|
TEXT("ËùÓÐÎļþ (*.*)\0*.*;\0\0")
|
|
|
|
TCHAR szFile[ 256 ];
|
|
TCHAR szFileB[ 256 ];
|
|
*szFileB = NULL;
|
|
_stprintf( szFile , _T("*.ini") );
|
|
|
|
OPENFILENAME sOpen;
|
|
sOpen.lStructSize = sizeof( sOpen );
|
|
sOpen.hwndOwner = this->m_hWnd ;
|
|
sOpen.Flags = OFN_EXPLORER|OFN_OVERWRITEPROMPT|OFN_HIDEREADONLY;
|
|
sOpen.lpstrFilter = FILE_FILTER_TEXT2;
|
|
sOpen.lpstrDefExt = _T("±¨¼Û¶¨Î».ini");
|
|
sOpen.lpstrCustomFilter = NULL;
|
|
sOpen.nMaxCustFilter = 0;
|
|
sOpen.lpstrFile = szFile;
|
|
sOpen.nMaxFile = sizeof( szFile );
|
|
sOpen.lpstrFileTitle = szFileB;
|
|
sOpen.nMaxFileTitle = sizeof( szFileB );
|
|
sOpen.lpstrInitialDir = NULL;
|
|
sOpen.lpstrTitle = _T("´ò¿ªÅäÖÃÎļþ");
|
|
if ( ::GetOpenFileName( &sOpen ) )
|
|
{
|
|
m_E_IniName.SetWindowText(sOpen.lpstrFile);
|
|
return ;
|
|
}
|
|
}
|
|
|
|
void DLG_User_Inport_LT::OnUserInportLtUsernameSel()
|
|
{
|
|
#define FILE_FILTER_TEXT3 \
|
|
TEXT("TXT Îļþ (*.txt)\0*.txt\0")\
|
|
TEXT("ËùÓÐÎļþ (*.*)\0*.*;\0\0")
|
|
|
|
TCHAR szFile[ 256 ];
|
|
TCHAR szFileB[ 256 ];
|
|
*szFileB = NULL;
|
|
_stprintf( szFile , _T("*.txt") );
|
|
|
|
OPENFILENAME sOpen;
|
|
sOpen.lStructSize = sizeof( sOpen );
|
|
sOpen.hwndOwner = this->m_hWnd ;
|
|
sOpen.Flags = OFN_EXPLORER|OFN_OVERWRITEPROMPT|OFN_HIDEREADONLY;
|
|
sOpen.lpstrFilter = FILE_FILTER_TEXT3;
|
|
sOpen.lpstrDefExt = _T("*.txt");
|
|
sOpen.lpstrCustomFilter = NULL;
|
|
sOpen.nMaxCustFilter = 0;
|
|
sOpen.lpstrFile = szFile;
|
|
sOpen.nMaxFile = sizeof( szFile );
|
|
sOpen.lpstrFileTitle = szFileB;
|
|
sOpen.nMaxFileTitle = sizeof( szFileB );
|
|
sOpen.lpstrInitialDir = NULL;
|
|
sOpen.lpstrTitle = _T("´ò¿ªÓû§Îļþ");
|
|
if ( ::GetOpenFileName( &sOpen ) )
|
|
{
|
|
m_E_UserName.SetWindowText(sOpen.lpstrFile);
|
|
return ;
|
|
}
|
|
}
|
|
|
|
void DLG_User_Inport_LT::OnOK()
|
|
{
|
|
|
|
CString strJGName;
|
|
CString strIniName;
|
|
CString strUserName;
|
|
|
|
m_E_JGName.GetWindowText(strJGName);
|
|
m_E_IniName.GetWindowText(strIniName);
|
|
m_E_UserName.GetWindowText(strUserName);
|
|
|
|
if ( strJGName.GetLength() <=0 )
|
|
{
|
|
MessageBox( _T("ÇëÑ¡Ôñ¼Û¸ñ±í£¬·ñÔòÎÞ·¨Õý³£µ¼È룡") , _T("´íÎó") , MB_ICONWARNING );
|
|
GetDlgItem(IDC_USER_INPORT_LT_JGNAME)->SetFocus();
|
|
return ;
|
|
}
|
|
if ( strIniName.GetLength() <=0 )
|
|
{
|
|
MessageBox( _T("ÇëÑ¡ÔñÅäÖÃÎļþ£¬·ñÔòÎÞ·¨Õý³£µ¼È룡") , _T("´íÎó") , MB_ICONWARNING );
|
|
GetDlgItem(IDC_USER_INPORT_LT_ININAME)->SetFocus();
|
|
return ;
|
|
}
|
|
if ( strUserName.GetLength() <=0 )
|
|
{
|
|
MessageBox( _T("ÇëÑ¡ÔñÓû§Îļþ£¬·ñÔòÎÞ·¨Õý³£µ¼È룡") , _T("´íÎó") , MB_ICONWARNING );
|
|
GetDlgItem(IDC_USER_INPORT_LT_USERNAME)->SetFocus();
|
|
return ;
|
|
}
|
|
//´ò¿ª¼Û¸ñ±í
|
|
//µÚÒ»²½£¬Á¬½Óµ½ExcelÊý¾Ý¿â
|
|
CAdoConnection adoConnectX;
|
|
CAdoRecordSet adoRSX,adoRSX2,adoRSX3;
|
|
if ( adoConnectX.ConnectExcel(strJGName) )
|
|
{
|
|
adoRSX.SetAdoConnection(&adoConnectX);
|
|
adoRSX2.SetAdoConnection(&adoConnectX);
|
|
adoRSX3.SetAdoConnection(&adoConnectX);
|
|
|
|
adoRSX.Open(_T("select * from [Sheet1$A1:IV65536]") );
|
|
adoRSX2.Open(_T("select * from [Sheet2$A1:IV65536]") );
|
|
adoRSX3.Open(_T("select * from [Sheet3$A1:IV65536]") );
|
|
|
|
}
|
|
else
|
|
{
|
|
MessageBox( _T("´ò¿ª¼Û¸ñ±í´íÎó£¬Çë¼ì²éÊÇ·ñÕýÈ·»òÕßÒѼÓÃÜÂë¡£") , _T("´íÎó") , MB_ICONWARNING );
|
|
GetDlgItem(IDC_USER_INPORT_LT_JGNAME)->SetFocus();
|
|
return ;
|
|
}
|
|
//´ò¿ªÓû§±í
|
|
CFile fTalk;
|
|
if ( !fTalk.Open( strUserName , CFile::modeRead ) )
|
|
{
|
|
MessageBox( _T("´ò¿ªÓû§±í´íÎó£¬Çë¼ì²éÊÇ·ñÕýÈ·¡£") , _T("´íÎó") , MB_ICONWARNING );
|
|
GetDlgItem(IDC_USER_INPORT_LT_USERNAME)->SetFocus();
|
|
return ;
|
|
}
|
|
//´ò¿ªÅäÖñí
|
|
CFile fTalk2;
|
|
if ( !fTalk2.Open( strIniName , CFile::modeRead ) )
|
|
{
|
|
MessageBox( _T("´ò¿ªÅäÖÃÎļþ´íÎó£¬Çë¼ì²éÊÇ·ñÕýÈ·¡£") , _T("´íÎó") , MB_ICONWARNING );
|
|
GetDlgItem(IDC_USER_INPORT_LT_ININAME)->SetFocus();
|
|
return ;
|
|
}
|
|
if ( fTalk2.GetLength()<1000 )
|
|
{
|
|
fTalk2.Close();
|
|
MessageBox( _T("ÅäÖÃÎļþÄÚÈݹýÉÙ£¬Çë¼ì²éÊÇ·ñÕýÈ·¡£") , _T("´íÎó") , MB_ICONWARNING );
|
|
GetDlgItem(IDC_USER_INPORT_LT_ININAME)->SetFocus();
|
|
return ;
|
|
}
|
|
fTalk2.Close();
|
|
|
|
|
|
|
|
TCHAR szPNBuf[1024];
|
|
TCHAR szName[1024];
|
|
TCHAR szName2[1024];
|
|
long lLineCount=0;
|
|
long lNameCount=0;
|
|
long lJGCount=0;
|
|
CString str;
|
|
DWORD dwBeginTime = ::GetTickCount();
|
|
|
|
#ifdef UNICODE
|
|
TCHAR szTemp[1024]={0};
|
|
char szTempA[1024]={0};
|
|
char szPNBuf2[1024]={0};
|
|
#endif
|
|
Send_User Luser;
|
|
while (true)
|
|
{
|
|
memset( szPNBuf , 0 , sizeof( szPNBuf ) );
|
|
#ifdef UNICODE
|
|
if ( ReadLine( &fTalk , "\n", szPNBuf2 , sizeof( szPNBuf2 )-5 ) )
|
|
{
|
|
_tcscpy(szPNBuf,CAdoRecordSet::Ado_A2W(szPNBuf2,szTemp));
|
|
|
|
#else
|
|
if ( ReadLine( &fTalk , "\n" , szPNBuf , sizeof( szPNBuf )-5 ) ) //¶ÁÈëÒ»ÐÐ
|
|
{
|
|
#endif
|
|
lLineCount ++;
|
|
ExChar( szPNBuf , _T("\r") );
|
|
ExChar( szPNBuf , _T("\n") );
|
|
_tcscat(szPNBuf,_T(" "));
|
|
memset(&Luser,0,sizeof(Luser));
|
|
for ( int i=0 ; i<3 ; i++ ) //¿ªÊ¼·Ö¸ôÐÐÊý
|
|
{
|
|
memset(szName , 0 , sizeof(szName) );
|
|
if ( GetReqMess( szPNBuf , szName , i , ' ' ) )
|
|
{
|
|
AllTrim(szName);
|
|
ExChar(szName,_T("\r"));
|
|
ExChar(szName,_T("\n"));
|
|
ExChar(szName,_T("\t"));
|
|
switch(i)
|
|
{
|
|
case 0:
|
|
_tcscpy(Luser.szName , szName );
|
|
break;
|
|
case 1:
|
|
_tcscpy(Luser.szMobile , szName );
|
|
break;
|
|
case 2:
|
|
{
|
|
CString strMsg;
|
|
TCHAR * p = NULL;
|
|
for ( int j=0 ; j<10 ; j++ )
|
|
{
|
|
if ( j==0 )
|
|
p = _tcstok(szName , _T("¡¢") );
|
|
else
|
|
p = _tcstok(NULL , _T("¡¢") );
|
|
|
|
if ( p )
|
|
{
|
|
long lBM=0;
|
|
long lH=0;
|
|
long lL=0;
|
|
long lSH=0;
|
|
long lSL=0;
|
|
GetPrivateProfileString(p, _T("°æÃæ"), _T("0"), szName2, sizeof(szName2), strIniName);
|
|
lBM = _ttol(szName2);
|
|
GetPrivateProfileString(p, _T("±¨¼ÛÐÐ"), _T("0"), szName2, sizeof(szName2), strIniName);
|
|
lH = _ttol(szName2);
|
|
GetPrivateProfileString(p, _T("±¨¼ÛÁÐ"), _T("0"), szName2, sizeof(szName2), strIniName);
|
|
lL = _ttol(szName2);
|
|
GetPrivateProfileString(p, _T("ÉýµøÐÐ"), _T("0"), szName2, sizeof(szName2), strIniName);
|
|
lSH = _ttol(szName2);
|
|
GetPrivateProfileString(p, _T("ÉýµøÁÐ"), _T("0"), szName2, sizeof(szName2), strIniName);
|
|
lSL = _ttol(szName2);
|
|
|
|
if ( lBM>0 && lH>0 && lL>0 && lSH>0 && lSL>0 ) //Êý¾ÝÕýÈ·
|
|
{
|
|
lJGCount ++;
|
|
try
|
|
{
|
|
//¶ÁÈ¡Êý¾Ý
|
|
CAdoRecordSet * pAdo=&adoRSX;
|
|
CString strBJ;
|
|
CString strJD;
|
|
if ( lBM==2 ) //±í2
|
|
pAdo=&adoRSX2;
|
|
if ( lBM==3 ) //±í3
|
|
pAdo=&adoRSX3;
|
|
//È¡±¨¼Û
|
|
pAdo->Move(lH-2);
|
|
pAdo->GetCollect(lL-1,strBJ);strBJ.TrimLeft(),strBJ.TrimRight();
|
|
strMsg += CString(p);
|
|
strMsg += strBJ;
|
|
|
|
if ( this->m_B_JD.GetCheck() )
|
|
{
|
|
//È¡Õǵø
|
|
pAdo->Move(lSH-2);
|
|
pAdo->GetCollect(lSL-1,strJD);strJD.TrimLeft(),strJD.TrimRight();
|
|
|
|
if ( strJD.GetLength()<=0 )
|
|
strJD = _T("+0");
|
|
strMsg += strJD;
|
|
}
|
|
}
|
|
catch(...)
|
|
{
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
if ( strMsg.GetLength()>0 )
|
|
_tcscpy(Luser.szBZ , strMsg );
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
|
|
if ( _tcslen(Luser.szMobile)>0 )
|
|
{
|
|
//Ìí¼ÓÓû§
|
|
m_pDlgSend->AddUser(Luser , -1);
|
|
lNameCount++;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
|
|
str.Format( _T("µ¼È뱨¼Û³É¹¦£¬¹²ÓÃʱ%dÃë!\r\nµ¼Èë¼Ç¼Êý£º%d\r\nµ¼È뱨¼ÛÊý£º%d\r\nµ¼Èë³É¹¦ºó£¬ÒÑ×Ô¶¯ÉèÖÃΪ³¤¶ÌÐÅ·½Ê½·¢ËÍ¡£\r\nµ¼Èë³É¹¦ºó£¬ÒÑ×Ô¶¯ÉèÖÃΪ·¢Ëͱ¸×¢·½Ê½£¬Çë²»Òª¸ü¸Ä£¡") , (GetTickCount()-dwBeginTime)/1000 ,lNameCount,lJGCount);
|
|
MessageBox( str , _T("Ìáʾ") , MB_ICONINFORMATION );
|
|
|
|
|
|
CDialog::OnOK();
|
|
}
|
|
|
|
long DLG_User_Inport_LT::ReadLine(CFile *file, char *pSplit, char *szBuf, long lLen)
|
|
{
|
|
int i,j;
|
|
int lLineCount = 0;
|
|
int lSplitLen = strlen(pSplit);
|
|
char c;
|
|
i = 0;
|
|
while ( true )
|
|
{
|
|
j = file->Read( &c , 1 );
|
|
if ( j < 1 )
|
|
{
|
|
szBuf[i]=0;
|
|
return i;
|
|
}
|
|
if ( i >= lLen-1 )
|
|
{
|
|
szBuf[i] = 0;
|
|
return i;
|
|
}
|
|
szBuf[i] = c;
|
|
i++;
|
|
if ( !memcmp( szBuf+i-lSplitLen , pSplit , lSplitLen ) ) //»»ÐбêÖ¾
|
|
{
|
|
szBuf[i] = 0;
|
|
return i;
|
|
}
|
|
}
|
|
return 0;
|
|
}
|