Log Parser C Example如何应用于长尾关键词分析?
- 内容介绍
- 文章标签
- 相关推荐
本文共计529个文字,预计阅读时间需要3分钟。
%E2%80%9C%E6%97%A5%E5%BF%97%E5%A4%84%E7%90%86%E5%B7%A5%E5%85%B7+C+%E7%A4%BA%E4%BE%8B%E6%97%A5%E5%BF%97%E5%A4%84%E7%90%86%E5%B7%A5%E5%85%B7%E6%98%AF%E4%BA%91%E8%BD%AF%E4%BB%B6%E5%8C%96%E5%BC%80%E5%8F%91%E5%85%B1%E4%BA%AB%E7%9A%84%E5%85%AC%E5%BC%80%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%B7%A5%E5%85%B7%EF%BC%8C%E5%8F%AF%E4%BB%A5%E6%89%A7%E8%A1%8CSQL%E6%9F%A5%E8%AF%A2%EF%BC%8C%E5%AF%B9%E5%88%97%E5%BC%8F%E6%97%A5%E5%BF%97%E6%96%87%E4%BB%B6%E5%92%8C%E5%85%B6%E4%BB%96%E7%B3%BB%E7%BB%9F%E6%95%B0%E6%8D%AE%E6%BA%90%E8%BF%9E%E6%8E%A5%E6%89%A7%E8%A1%8C%E6%9F%A5%E8%AF%A2%EF%BC%8C%E7%BB%93%E6%9E%9C%E5%8F%AF%E5%AF%BC%E5%87%BA%E5%88%B0%E5%A4%A7%E9%81%8D%E5%9B%BD%E5%9C%B0%E7%9A%84%E6%95%B0%E6%8D%AE%E6%BA%90%EF%BC%8C%E4%BB%A5%E4%BB%A5SQL%E8%A1%A8%E6%95%B0%E6%8D%AE%E3%80%82%E2%80%9D
Log Parser C Example
Log Parser is a free command-line tool from Microsoft that lets you run SQL queries against a variety of log files and other system data sources, and get the results out to an array of destinations, from SQL tables to CSV files
#include <atlbase.h>
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include "LogParser.tlh" //由下一行产生
//#import "LogParser.dll" raw_native_types //由type library产生.tlh .tli
int main()
{
::CoInitialize( NULL ); // COM 初始化
MSUtil::ILogQuery *plog;
MSUtil::ICOMCSVInputContext *pin;
MSUtil::ILogRecordset *pset;
//CLSID clsid1;
//HRESULT hr1 = ::CLSIDFromProgID( L"MSUtil.LogQuery", &clsid1 );
//assert( SUCCEEDED( hr1 ) ); // 如果失败,说明没有注册组件
//__uuidof()可取代CLSIDFromProgID
HRESULT hr = ::CoCreateInstance( __uuidof(MSUtil::LogQueryClass), NULL, CLSCTX_INPROC_SERVER, __uuidof(MSUtil::ILogQuery), (LPVOID *)&plog );
assert( SUCCEEDED( hr ) );
hr = ::CoCreateInstance( __uuidof(MSUtil::COMCSVInputContextClass), NULL, CLSCTX_INPROC_SERVER, __uuidof(MSUtil::ICOMCSVInputContext), (LPVOID *)&pin );
pset = plog->Execute(L"select * from DailyLog.csv where Score>50",pin);
int ncount = 0;
while(!pset->atEnd())
{
/*VARIANT idx;
VariantInit(&idx);
idx.bstrVal = L"Score";
idx.vt = VT_BSTR;
*/
for(int i=2;i<=11;i++)
{
CComVariant idx(i); //若不用CComVariant则须用上面Variant 被mark的部分
//用debug检查返回Variant里面是什么型态
CComVariant val = pset->getRecord()->getValue(idx);
if(val.vt == VT_BSTR)
wprintf(L"%st",val.bstrVal);
else if(val.vt == VT_I4)
printf("%dt",val.lVal);
}
printf("n");
ncount++;
pset->moveNext();
}
printf("Total:%dn",ncount);
return 0;
}
原文:大专栏 Log Parser C Example
本文共计529个文字,预计阅读时间需要3分钟。
%E2%80%9C%E6%97%A5%E5%BF%97%E5%A4%84%E7%90%86%E5%B7%A5%E5%85%B7+C+%E7%A4%BA%E4%BE%8B%E6%97%A5%E5%BF%97%E5%A4%84%E7%90%86%E5%B7%A5%E5%85%B7%E6%98%AF%E4%BA%91%E8%BD%AF%E4%BB%B6%E5%8C%96%E5%BC%80%E5%8F%91%E5%85%B1%E4%BA%AB%E7%9A%84%E5%85%AC%E5%BC%80%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%B7%A5%E5%85%B7%EF%BC%8C%E5%8F%AF%E4%BB%A5%E6%89%A7%E8%A1%8CSQL%E6%9F%A5%E8%AF%A2%EF%BC%8C%E5%AF%B9%E5%88%97%E5%BC%8F%E6%97%A5%E5%BF%97%E6%96%87%E4%BB%B6%E5%92%8C%E5%85%B6%E4%BB%96%E7%B3%BB%E7%BB%9F%E6%95%B0%E6%8D%AE%E6%BA%90%E8%BF%9E%E6%8E%A5%E6%89%A7%E8%A1%8C%E6%9F%A5%E8%AF%A2%EF%BC%8C%E7%BB%93%E6%9E%9C%E5%8F%AF%E5%AF%BC%E5%87%BA%E5%88%B0%E5%A4%A7%E9%81%8D%E5%9B%BD%E5%9C%B0%E7%9A%84%E6%95%B0%E6%8D%AE%E6%BA%90%EF%BC%8C%E4%BB%A5%E4%BB%A5SQL%E8%A1%A8%E6%95%B0%E6%8D%AE%E3%80%82%E2%80%9D
Log Parser C Example
Log Parser is a free command-line tool from Microsoft that lets you run SQL queries against a variety of log files and other system data sources, and get the results out to an array of destinations, from SQL tables to CSV files
#include <atlbase.h>
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include "LogParser.tlh" //由下一行产生
//#import "LogParser.dll" raw_native_types //由type library产生.tlh .tli
int main()
{
::CoInitialize( NULL ); // COM 初始化
MSUtil::ILogQuery *plog;
MSUtil::ICOMCSVInputContext *pin;
MSUtil::ILogRecordset *pset;
//CLSID clsid1;
//HRESULT hr1 = ::CLSIDFromProgID( L"MSUtil.LogQuery", &clsid1 );
//assert( SUCCEEDED( hr1 ) ); // 如果失败,说明没有注册组件
//__uuidof()可取代CLSIDFromProgID
HRESULT hr = ::CoCreateInstance( __uuidof(MSUtil::LogQueryClass), NULL, CLSCTX_INPROC_SERVER, __uuidof(MSUtil::ILogQuery), (LPVOID *)&plog );
assert( SUCCEEDED( hr ) );
hr = ::CoCreateInstance( __uuidof(MSUtil::COMCSVInputContextClass), NULL, CLSCTX_INPROC_SERVER, __uuidof(MSUtil::ICOMCSVInputContext), (LPVOID *)&pin );
pset = plog->Execute(L"select * from DailyLog.csv where Score>50",pin);
int ncount = 0;
while(!pset->atEnd())
{
/*VARIANT idx;
VariantInit(&idx);
idx.bstrVal = L"Score";
idx.vt = VT_BSTR;
*/
for(int i=2;i<=11;i++)
{
CComVariant idx(i); //若不用CComVariant则须用上面Variant 被mark的部分
//用debug检查返回Variant里面是什么型态
CComVariant val = pset->getRecord()->getValue(idx);
if(val.vt == VT_BSTR)
wprintf(L"%st",val.bstrVal);
else if(val.vt == VT_I4)
printf("%dt",val.lVal);
}
printf("n");
ncount++;
pset->moveNext();
}
printf("Total:%dn",ncount);
return 0;
}
原文:大专栏 Log Parser C Example

