CorpSms/DLG_User_Inport_LT.cpp

409 lines
11 KiB
C++
Raw Normal View History

2025-02-27 16:58:16 +08:00
// 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 <20>ļ<EFBFBD> (*.xls,*.xlsx)\0*.xls\0*.xlsx\0")\
TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD> (*.*)\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("<EFBFBD>۸<EFBFBD>.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("<EFBFBD>򿪼۸<EFBFBD><EFBFBD>ļ<EFBFBD>");
if ( ::GetOpenFileName( &sOpen ) )
{
m_E_JGName.SetWindowText(sOpen.lpstrFile);
return ;
}
}
void DLG_User_Inport_LT::OnUserInportLtIninameSel()
{
#define FILE_FILTER_TEXT2 \
TEXT("Ini <20>ļ<EFBFBD> (*.ini)\0*.ini\0")\
TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD> (*.*)\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("<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD>λ.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("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>");
if ( ::GetOpenFileName( &sOpen ) )
{
m_E_IniName.SetWindowText(sOpen.lpstrFile);
return ;
}
}
void DLG_User_Inport_LT::OnUserInportLtUsernameSel()
{
#define FILE_FILTER_TEXT3 \
TEXT("TXT <20>ļ<EFBFBD> (*.txt)\0*.txt\0")\
TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD> (*.*)\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("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD>ļ<EFBFBD>");
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("<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>۸<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޷<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>") , _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>") , MB_ICONWARNING );
GetDlgItem(IDC_USER_INPORT_LT_JGNAME)->SetFocus();
return ;
}
if ( strIniName.GetLength() <=0 )
{
MessageBox( _T("<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޷<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>") , _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>") , MB_ICONWARNING );
GetDlgItem(IDC_USER_INPORT_LT_ININAME)->SetFocus();
return ;
}
if ( strUserName.GetLength() <=0 )
{
MessageBox( _T("<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޷<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>") , _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>") , MB_ICONWARNING );
GetDlgItem(IDC_USER_INPORT_LT_USERNAME)->SetFocus();
return ;
}
//<2F>򿪼۸<F2BFAABC><DBB8><EFBFBD>
//<2F><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD>Excel<65><6C><EFBFBD>ݿ<EFBFBD>
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("<EFBFBD>򿪼۸<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>") , _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>") , MB_ICONWARNING );
GetDlgItem(IDC_USER_INPORT_LT_JGNAME)->SetFocus();
return ;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>
CFile fTalk;
if ( !fTalk.Open( strUserName , CFile::modeRead ) )
{
MessageBox( _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD>") , _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>") , MB_ICONWARNING );
GetDlgItem(IDC_USER_INPORT_LT_USERNAME)->SetFocus();
return ;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ñ<EFBFBD>
CFile fTalk2;
if ( !fTalk2.Open( strIniName , CFile::modeRead ) )
{
MessageBox( _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD>") , _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>") , MB_ICONWARNING );
GetDlgItem(IDC_USER_INPORT_LT_ININAME)->SetFocus();
return ;
}
if ( fTalk2.GetLength()<1000 )
{
fTalk2.Close();
MessageBox( _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݹ<EFBFBD><EFBFBD>٣<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD>") , _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>") , 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 ) ) //<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
{
#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++ ) //<2F><>ʼ<EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>
{
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("<EFBFBD><EFBFBD>") );
else
p = _tcstok(NULL , _T("<EFBFBD><EFBFBD>") );
if ( p )
{
long lBM=0;
long lH=0;
long lL=0;
long lSH=0;
long lSL=0;
GetPrivateProfileString(p, _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), _T("0"), szName2, sizeof(szName2), strIniName);
lBM = _ttol(szName2);
GetPrivateProfileString(p, _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), _T("0"), szName2, sizeof(szName2), strIniName);
lH = _ttol(szName2);
GetPrivateProfileString(p, _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), _T("0"), szName2, sizeof(szName2), strIniName);
lL = _ttol(szName2);
GetPrivateProfileString(p, _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), _T("0"), szName2, sizeof(szName2), strIniName);
lSH = _ttol(szName2);
GetPrivateProfileString(p, _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), _T("0"), szName2, sizeof(szName2), strIniName);
lSL = _ttol(szName2);
if ( lBM>0 && lH>0 && lL>0 && lSH>0 && lSL>0 ) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ
{
lJGCount ++;
try
{
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
CAdoRecordSet * pAdo=&adoRSX;
CString strBJ;
CString strJD;
if ( lBM==2 ) //<2F><>2
pAdo=&adoRSX2;
if ( lBM==3 ) //<2F><>3
pAdo=&adoRSX3;
//ȡ<><C8A1><EFBFBD><EFBFBD>
pAdo->Move(lH-2);
pAdo->GetCollect(lL-1,strBJ);strBJ.TrimLeft(),strBJ.TrimRight();
strMsg += CString(p);
strMsg += strBJ;
if ( this->m_B_JD.GetCheck() )
{
//ȡ<>ǵ<EFBFBD>
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 )
{
//<2F><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>
m_pDlgSend->AddUser(Luser , -1);
lNameCount++;
}
}
else
{
break;
}
}
str.Format( _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>۳ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ%d<><64>!\r\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD>%d\r\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%d\r\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŷ<EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD>͡<EFBFBD>\r\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD>ͱ<EFBFBD>ע<EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD>벻Ҫ<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD>") , (GetTickCount()-dwBeginTime)/1000 ,lNameCount,lJGCount);
MessageBox( str , _T("<EFBFBD><EFBFBD>ʾ") , 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 ) ) //<2F><><EFBFBD>б<EFBFBD>־
{
szBuf[i] = 0;
return i;
}
}
return 0;
}