代码拉取完成,页面将自动刷新
// ApacheLogAnalyzerView1.cpp : implementation file
//
#include "stdafx.h"
#include "ApacheLogAnalyzer.h"
#include "ApacheLogAnalyzerDoc.h"
#include "ApacheLogAnalyzerView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// ApacheLogAnalyzerView
IMPLEMENT_DYNCREATE(CLogAnalyzerView, CFormView)
CLogAnalyzerView::CLogAnalyzerView()
: CFormView(CLogAnalyzerView::IDD)
{
m_InitList = FALSE;
//{{AFX_DATA_INIT(CLogAnalyzerView)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
CLogAnalyzerView::~CLogAnalyzerView()
{
}
void CLogAnalyzerView::DoDataExchange(CDataExchange* pDX)
{
CFormView::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CLogAnalyzerView)
DDX_Control(pDX, IDC_STAT_PROGRESS, m_ctlStatProgress);
DDX_Control(pDX, IDC_LIST_ERRORCODE, m_ListErrorCode);
DDX_Control(pDX, IDC_LIST_HOST, m_ListHost);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CLogAnalyzerView, CFormView)
//{{AFX_MSG_MAP(CLogAnalyzerView)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CLogAnalyzerView diagnostics
#ifdef _DEBUG
void CLogAnalyzerView::AssertValid() const
{
CFormView::AssertValid();
}
void CLogAnalyzerView::Dump(CDumpContext& dc) const
{
CFormView::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CLogAnalyzerView message handlers
void CLogAnalyzerView::OnInitialUpdate()
{
ModifyStyleEx(0, WS_EX_STATICEDGE);
ModifyStyleEx(WS_EX_CLIENTEDGE,0 );
CFormView::OnInitialUpdate();
if(!m_InitList){
if(m_ListHost.GetSafeHwnd()){
m_ListHost.InsertColumn(0,"IP地址",LVCFMT_LEFT,CListCtrlEx::LCMASK_STRING,130);
m_ListHost.InsertColumn(1,"访问次数",LVCFMT_RIGHT,CListCtrlEx::LCMASK_INTEGER,72);
m_ListHost.InsertColumn(2,"总流量(字节)",LVCFMT_RIGHT,CListCtrlEx::LCMASK_INTEGER,100);
m_ListHost.InsertColumn(3,"百分比",LVCFMT_RIGHT,CListCtrlEx::LCMASK_PERCENT,60);
DWORD dwExtStyle = m_ListHost.GetExStyle();
dwExtStyle |= LVS_EX_FULLROWSELECT;
dwExtStyle |= LVS_EX_GRIDLINES;
dwExtStyle &=~LVS_EX_CHECKBOXES;
m_ListHost.SetExtendedStyle(dwExtStyle);
}
if(m_ListErrorCode.GetSafeHwnd()){
m_ListErrorCode.InsertColumn(0,"错误码",LVCFMT_LEFT,CListCtrlEx::LCMASK_INTEGER,55);
m_ListErrorCode.InsertColumn(1,"次数",LVCFMT_RIGHT,CListCtrlEx::LCMASK_INTEGER,70);
m_ListErrorCode.InsertColumn(2,"百分比",LVCFMT_RIGHT,CListCtrlEx::LCMASK_PERCENT,55);
DWORD dwExtStyle = m_ListErrorCode.GetExStyle();
dwExtStyle |= LVS_EX_FULLROWSELECT;
dwExtStyle |= LVS_EX_GRIDLINES;
dwExtStyle &=~LVS_EX_CHECKBOXES;
m_ListErrorCode.SetExtendedStyle(dwExtStyle);
}
m_InitList = TRUE;
}
}
void CLogAnalyzerView::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint)
{
CLogAnalyzerDoc* doc = (CLogAnalyzerDoc*)this->GetDocument();
this->SetDlgItemInt(IDC_STATIC_TOTAL_COUNT, doc->m_visitCount);
CString sText;
if(doc->m_totalPageSize < 1048576)
sText.Format("%.0f KB", doc->m_totalPageSize / 1024.0);
else
if(doc->m_totalPageSize < 1073741824)
sText.Format("%.02f MB", doc->m_totalPageSize / 1048576.0);
else
sText.Format("%.02f GB", doc->m_totalPageSize / 1073741824.0);
this->SetDlgItemText(IDC_STATIC_TOTAL_SIZE, sText);
//this->SetDlgItemInt(IDC_STATIC_TOTAL_SIZE, doc->m_totalPageSize);
this->SetDlgItemInt(IDC_STATIC_ERROR_COUNT, doc->m_errorLines.size());
if(lHint == STAT_FINISH){
m_ListErrorCode.SetRedraw(FALSE);
CString scode;
m_ListErrorCode.DeleteAllItems();
int i=0;
map<int,int>::iterator code;
for(code = doc->m_errorCode.begin(); code!=doc->m_errorCode.end(); ++code){
scode.Format("%d",(*code).first);
m_ListErrorCode.InsertItem(i, scode);
scode.Format("%d",(*code).second);
m_ListErrorCode.SetItemText(i,1,scode);
scode.Format("%.2f%%",(*code).second * 100.0 / doc->m_visitCount);
m_ListErrorCode.SetItemText(i,2,scode);
i++;
}
m_ListErrorCode.SortInColumn(1, FALSE);
m_ListErrorCode.SetRedraw(TRUE);
m_ListHost.SetRedraw(FALSE);
m_ListHost.DeleteAllItems();
i=0;
map<string,__int64>::iterator host;
for(host = doc->m_hostVisitCount.begin(); host!=doc->m_hostVisitCount.end(); ++host){
m_ListHost.InsertItem(i, (*host).first.c_str());
scode.Format("%ld", (*host).second);
m_ListHost.SetItemText(i,1,scode);
__int64 pageSize = doc->m_hostPageSize[(*host).first];
scode.Format("%ld", pageSize);
m_ListHost.SetItemText(i,2,scode);
scode.Format("%.2f%%",pageSize * 100.0 / doc->m_totalPageSize);
m_ListHost.SetItemText(i,3,scode);
i++;
}
m_ListHost.SortInColumn(1, FALSE);
m_ListHost.SetRedraw(TRUE);
CString fmt;
fmt.LoadString(IDS_HOST_RESULT);
scode.Format(fmt,m_ListHost.GetItemCount());
SetDlgItemText(IDC_STATIC_HOST_RESULT, scode);
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。