锘??xml version="1.0" encoding="utf-8" standalone="yes"?> Microsoft Visual Studio 2005 Team Suite 綆浣撲腑鏂囩増 搴忓垪鍙?娉ㄥ唽鐮? 搴忓垪鍙鳳細KYTYH-TQKW6-VWPBQ-DKC8F-HWC4J (鍙敤) 娣誨姞/鍒犻櫎紼嬪簭 - Microsoft Visual Studio 2005 Team Suite 綆浣撲腑鏂囩増 - 鍗歌澆 - 涓嬩竴姝?- KYTYH-TQKW6-VWPBQ-DKC8F-HWC4J - 鍗囩駭銆?/p>
#璁劇疆鍒嗙瑪鏁版嵁鏂囦歡鐩綍
config.source.ticket.dir=ticket
#璁劇疆level2鏂囦歡璺緞
config.source.lv2.dir=lv2
#璁劇疆K綰挎暟鎹牸寮?br />config.source.k.format=default
#璁劇疆鍒嗘椂鏈澶у姞杞芥棩鏈熸暟
source.ticket.maxtickloaded=5
#璁劇疆灝忓崟鏈澶ч搴?br />config.source.lv2.v1=5
#璁劇疆涓崟鏈澶ч搴?br />config.source.lv2.v2=100
#璁劇疆澶у崟鏈澶ч搴?瓚呰繃姝ゆ暟鍊煎垯涓鴻秴澶у崟
config.source.lv2.v3=500
#瀹氫箟鍗曟棩鑲$エ涔板叆鎺掑簭,榛樿涓烘垚浜ら噺闄嶅簭(鍙塿olasc,increaseasc,increasedesc)
config.trade.buy.order=voldesc
#瀹氫箟鑲$エ涔板叆鏃舵満,榛樿涓哄紑鐩?鍙塷pen/auto)
config.trade.buy.point=open
#瀹氫箟鑲$エ鍗栧嚭鏃舵満,榛樿涓哄熬鐩?鍙夌浜屽ぉ寮鐩樹環-鏃╃洏)
config.trade.sale.point=close
#鏄惁浣跨敤绔嬪嵆姝㈢泩妯″紡,杈懼埌璁懼畾鐩堝埄绔嬪埢鍗栧嚭
config.trade.sale.rapid=yes
#璁劇疆鍗曡偂鏈澶ф寔鏈夋棩鏈?br />config.trade.max.hold.day=3
#璁懼畾鍗曡偂涔板叆鍚庡啀嬈′拱鍏ョ涔版棩鏈熼棿闅?br />config.trade.min.exclude=6
#璁劇疆姝㈢泩鐐?br />config.trade.max.profit=64.0
#璁懼畾姝㈡崯鐐?br />config.trade.max.lost=-9.0
#璁懼畾浜ゆ槗鎴愭湰(鍗冨垎涔?)
config.trade.tradecost=0.8
#璁懼畾鍗曟棩鏈澶у彲涔拌偂紲ㄦ暟
config.trade.max.count=3
#璁懼畾鑲$エ涔板叆鏈澶у厑璁告定騫?br />config.trade.max.allow.increase=3.2
#璁懼畾鑲$エ涔板叆鏈澶у厑璁歌穼騫?br />config.trade.max.allow.decrease=-3.2
buy.macd.diff,0>macd.dea,0
buy.macd.diff,-1<macd.dea,-1
buy.macd.diff,0>value,0.0
buy.ohlc.increase,0>value,0.5
]]>
{
Macd():m12(0.0f),m26(0.0f),diff(0.0f),dea(0.0f),bar(0.0f),index(-1){}
float m12;
float m26;
float diff;
float dea;
float bar;
int index;
void update(float value)
{
index ++;
if(index == 0)
{
m12 = value;
m26 = value;
}
else
{
m12 = m12 + (value - m12) * 2.0f/13.0f;
m26 = m26 + (value - m26) * 2.0f/27.0f;
diff = m12 - m26;
if(index == 1)
dea = 0.2*diff;
else
dea = dea*0.8 + diff*0.2;
bar = 2 * (-dea + diff);
std::cout<<diff<<" "<<dea<<" "<<bar<<std::endl;
}
}
};
]]>
娑ㄥ箙涓?.8
鍚屾湡娉告繁涓?3.5
姣忔棩寮鐩樿嚜鍔ㄩ偖浠舵帹閫侀夎偂
鎯寵鐨勫彲浠ュ姞緹?铚楃墰緹?297919841
ps:鏈漢涓嶆槸鍗栬蔣浠剁殑鐨勶紒
姣忔棩鏁版嵁鍦ㄨ繖閲寃ww.snail007.com/blog
]]>
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
#ifdef WIN32
#include <io.h>
#else
#include <unistd.h>
#endif
#define REMOTE_URL "sftp://account:password@xx.xx.xx.xx/"
static size_t read_callback(void *ptr, size_t size, size_t nmemb, void *stream)
{
curl_off_t nread;
size_t retcode = fread(ptr, size, nmemb, stream);
nread = (curl_off_t)retcode;
fprintf(stderr, "*** We read %" CURL_FORMAT_CURL_OFF_T " bytes from file\n", nread);
return retcode;
}
int main(int argc,char *argv[])
{
if(argc != 3)
{
printf("2 paramenters is needed.\n");
return -1;
}
char* local_file = argv[1];
char* remote_file = argv[2];
printf("call me for update -:%s,%s\n",local_file,remote_file);
char remoteurl[1024] = {0};
strcpy(remoteurl,REMOTE_URL);
strcat(remoteurl,remote_file);
CURL* curl;
CURLcode res;
FILE* file;
struct stat file_info;
curl_off_t fsize;
if(stat(local_file,&file_info))
{
printf("couldnt open '%s': %s\n", local_file, strerror(errno));
return 1;
}
fsize = (curl_off_t)file_info.st_size;
printf("Local file size: %" CURL_FORMAT_CURL_OFF_T " bytes.\n", fsize);
file = fopen(local_file, "rb");
curl_global_init(CURL_GLOBAL_ALL);
curl = curl_easy_init();
if(curl)
{
curl_easy_setopt(curl,CURLOPT_READFUNCTION,read_callback);
curl_easy_setopt(curl,CURLOPT_UPLOAD,1L);
curl_easy_setopt(curl,CURLOPT_URL,remoteurl);
curl_easy_setopt(curl,CURLOPT_READDATA,file);
curl_easy_setopt(curl,CURLOPT_INFILESIZE_LARGE,(curl_off_t)fsize);
curl_easy_setopt(curl,CURLOPT_FTP_RESPONSE_TIMEOUT,120);
res = curl_easy_perform(curl);
if(res != CURLE_OK)
fprintf(stderr,"curl_easy_perform() failed: %s\n",curl_easy_strerror(res));
curl_easy_cleanup(curl);
fprintf(stderr,"finished update.");
}
fclose(file);
curl_global_cleanup();
return 0;
}
浠ヤ笂浠g爜緇忚繃瀹為檯嫻嬭瘯.
]]>
sql += "',N'";
sql += desc1;
sql += "',N'";
sql += desc2;
sql += "',N'";
sql += desc3;
sql += "');select @@identity;";
OleDbConnection conn = getOleDbConntion();
OleDbCommand cmd = new OleDbCommand(sql, conn);
conn.Open();
OleDbDataReader reader = cmd.ExecuteReader();
reader.Read();
string index = reader.GetValue(0).ToString();
conn.Close();
return index;
}
]]>
var args = {
"M+": this.getMonth() + 1,
"d+": this.getDate(),
"h+": this.getHours(),
"m+": this.getMinutes(),
"s+": this.getSeconds(),
"q+": Math.floor((this.getMonth() + 3) / 3),
"S": this.getMilliseconds()
};
if (/(y+)/.test(format))
format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var i in args) {
var n = args[i];
if (new RegExp("(" + i + ")").test(format))
format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? n : ("00" + n).substr(("" + n).length));
}
return format;
};
]]>
鍘誨勾涓氫綑涓昏寮鍙戜簡GAudio
浠婂勾寮鍙戜簡鍗庝綏涓嵂澶у笀涓氫綑鐗堟湰錛岄┈涓婂氨瑕佸嚭鍏ラ棬鐗堟湰鍜?br />
涓鐩存兂闈犲啓杞歡鍙戣儲
]]>
def list_get(file):
soup = BeautifulSoup(open(file))
alist = soup.find_all('a',class_ = 'link')
list = []
for i in alist:
list.append(i.get('href'));
#for i in list:
# print(i)
return list
if __name__=="__main__":
list_get('List.htm')
list_get鍑芥暟榪斿洖鐨勬槸list瀛楃涓插璞?br />鍏禼璇█璋冪敤鐨勪唬鐮佸涓?
#include <stdlib.h>
#include <Python.h>
char* GDALPythonObjectToCStr(PyObject* pyObject);
int main(int argc, char *argv[])
{
Py_Initialize();
if(!Py_IsInitialized())
{
return -1;
}
PyRun_SimpleString("import sys");
PyRun_SimpleString("sys.path.append('./script')");
PyObject* pModule;
PyObject* pDict;
PyObject* pFunc;
pModule = PyImport_ImportModule("list");
if(!pModule)
{
printf("can't find list.py");
system("PAUSE");
getchar();
return -1;
}
pDict = PyModule_GetDict(pModule);
if(!pDict)
{
return -1;
}
pFunc = PyDict_GetItemString(pDict,"list_get");
if(!pFunc || !PyCallable_Check(pFunc))
{
printf("can't find function [list_get]");
getchar();
return -1;
}
PyObject* args = PyTuple_New(1);
PyTuple_SetItem(args,0,Py_BuildValue("s","List.htm"));
PyObject* value = PyObject_CallObject(pFunc,args);
int ret = PySequence_Check(value);
printf("check:%d\n",ret);
int length = PySequence_Size(value);
printf("length:%d\n",length);
int i = 0;
for(;i<length;i++)
{
PyObject* obj = PySequence_GetItem(value,i);
//char* str = PyBytes_AS_STRING(obj);
char* str = GDALPythonObjectToCStr(obj);
printf("link:%s\n",str);
free(str);
}
Py_DECREF(args);
Py_DECREF(pModule);
Py_Finalize();
system("PAUSE");
return 0;
}
/* Return a NULL terminated c String from a PyObject */
/* Result must be freed with GDALPythonFreeCStr */
char* GDALPythonObjectToCStr(PyObject* pyObject)
{
#if PY_VERSION_HEX >= 0x03000000
if(PyUnicode_Check(pyObject))
{
char *pszStr;
char *pszNewStr;
Py_ssize_t nLen;
PyObject* pyUTF8Str = PyUnicode_AsUTF8String(pyObject);
PyBytes_AsStringAndSize(pyUTF8Str,&pszStr,&nLen);
pszNewStr = (char*)malloc(nLen+1);
memcpy(pszNewStr,pszStr,nLen+1);
Py_XDECREF(pyUTF8Str);
return pszNewStr;
}
else if(PyBytes_Check(pyObject))
{
char *pszStr;
char *pszNewStr;
Py_ssize_t nLen;
PyBytes_AsStringAndSize(pyObject,&pszStr,&nLen);
pszNewStr = (char*)malloc(nLen+1);
memcpy(pszNewStr,pszStr,nLen+1);
return pszNewStr;
}
else
{
char *pszStr = (char*)malloc(1);
pszStr[0] = '\0';
return pszStr;
}
#else
return PyString_AsString(pyObject);
#endif
}
]]>
]]>
#include <ao/ao.h>
#include "mpg123.h"
int main(int argc, char *argv[])
{
ao_initialize();
mpg123_handle *mpg123 ;
int iMpg123_error;
if(MPG123_OK != (iMpg123_error = mpg123_init()))
{
printf("failed to init mpg123\n");
return -1;
}
mpg123 = mpg123_new(mpg123_decoders()[0], &iMpg123_error);
if(MPG123_OK != (iMpg123_error = mpg123_open(mpg123,argv[1])))
{
fprintf(stderr,"error in open mp3 file\n");
return -1;
}
int rate,channel,encoding;
mpg123_getformat(mpg123,&rate,&channel,&encoding);
int default_driver = ao_default_driver_id();
ao_sample_format format;
memset(&format,0,sizeof(format));
format.bits = 16;
format.channels = channel;
format.rate = rate;
format.byte_format = AO_FMT_LITTLE;
ao_device *device;
device = ao_open_live(default_driver,&format,NULL);
if(device == NULL)
{
fprintf(stderr,"error opening device.\n");
return 1;
}
short buffer[4096];
int read = 0;
while(1)
{
mpg123_read(mpg123,buffer,4096,&read);
if(read == 0)
break;
ao_play(device,buffer,read);
}
mpg123_close(mpg123);
ao_close(device);
ao_shutdown();
return 0;
}
]]>
]]>
RingBuffer* RingBufferCreate(int sizeOf,int length);
void RingBufferDestroy(RingBuffer* ring);
int RingBufferWrite(RingBuffer* ring,const char* data,int len);
int RingBufferRead(RingBuffer* ring,char* data,int len);
{
char* mem;
int sizeOf;
int length;
int writePos;
int full;
};
RingBuffer* RingBufferCreate(int sizeOf,int length)
{
RingBuffer *ring = (RingBuffer*)calloc(1,sizeof(*ring));
if(ring)
{
ring->sizeOf = sizeOf;
ring->length = length;
ring->writePos = 0;
ring->full = 0;
ring->mem = (char*)malloc(ring->length * ring->sizeOf);
if(!ring->mem)
{
free(ring);
ring = 0;
}
}
return ring;
}
void RingBufferDestroy(RingBuffer* ring)
{
if(ring)
{
free(ring->mem);
free(ring);
}
}
int RingBufferRead(RingBuffer* ring,char* data,int len)
{
if(ring->full == 1)
{
if(len > ring->length)
len = ring->length;
memcpy(data,ring->mem,len*ring->sizeOf);
ring->full = 0;
}
if(ring->writePos < len)
{
ring->full = 0;
int ret = ring->writePos;
ring->writePos = 0;
memcpy(data,ring->mem,ring->writePos*ring->sizeOf);
return ret;
}
else
{
ring->full = 0;
memcpy(data,ring->mem,len*ring->sizeOf);
ring->writePos -= len;
memcpy(ring->mem,ring->mem + len*ring->sizeOf,ring->writePos*ring->sizeOf);
return len;
}
}
int RingBufferWrite(RingBuffer* ring,const char* data,int len)
{
if(len + ring->writePos > ring->length)
ring->full = 1;
int ret = len >= ring->length ? ring->length : len;
if(len >= ring->length)
{
memcpy(ring->mem,data + (ring->length-ring->length%len)*ring->sizeOf,ring->length*ring->sizeOf);
ring->writePos = ring->length;
}
else if(len + ring->writePos <= ring->length)
{
memcpy(ring->mem + ring->writePos*ring->sizeOf,data,len*ring->sizeOf);
ring->writePos += len;
}
else
{
memcpy(ring->mem,ring->mem + (len + ring->writePos - ring->length)*ring->sizeOf,(len + ring->writePos - ring->length)*ring->sizeOf);
memcpy(ring->mem + (len + ring->writePos - ring->length)*ring->sizeOf,data,len*ring->sizeOf);
ring->writePos = ring->length;
}
return ret;
}
]]>
#include <cstdio>
#include <iostream>
#include <tidy/tidy.h>
using namespace std;
int main(int argc, char *argv[])
{
int rc = -1;
Bool ok;
TidyDoc tdoc = tidyCreate();
ok = tidyOptSetBool(tdoc,TidyXhtmlOut,yes);
rc = tidyParseFile(tdoc,"file.html");
rc = tidyCleanAndRepair(tdoc);
rc = tidyRunDiagnostics(tdoc);
rc = tidySaveFile(tdoc,"file.htm");
tidyRelease(tdoc);
system("PAUSE");
return EXIT_SUCCESS;
}
]]>
鐜板湪鍙戠幇灞呯劧瀵筓I緙栫▼榪樺浜庝竴騫寸駭姘村鉤
闇瑕佹彁楂楿I緙栫▼鑳藉姏鍟?br />榪欑畝鐩村氨鏄ぇBUG
]]>
{
signed int c1 = 0, c2 = 0;
while (len--)
{
c1 = tolower(*str1++);
c2 = tolower(*str2++);
if (c1 == 0 || c1 != c2)
break;
}
return c1 - c2;
}
]]>
浠嶲T紿椾綋甯冨眬璇磋搗
鍑℃槸紿椾綋甯冨眬鏃犻潪灝辨槸濡備綍鎽嗘斁鐨勯棶棰?br>1.鎯沖綋鐒跺鏋滄憜鏀炬湁2涓柟寮忎竴涓槸鎵瑙佸嵆鎵寰?涓涓槸浣跨敤甯冨眬綆$悊鍣?br>鍏堣鍚庤呭惂
2.QT鏈夊ソ鍑犵甯冨眬綆$悊鍣ㄦ棤闈炲氨鏄暐瀛愭祦寮忓竷灞錛屾牸瀛愬竷灞絳夌瓑
浠庤繖涓眰綰т笂璇磋蔣浠剁晫闈㈤兘鏄竷灞宓屽鐨?br>3.甯冨眬鍜屾帶浠剁殑鍏崇郴
涓鑸槸涓涓竷灞瀵瑰簲浜庝竴涓帶浠跺鍣?鎴栬呴《灞傛帶浠?
浣跨敤褰撳墠甯冨眬綆$悊鍣ㄥ姞鎸傚瓙鎺т歡(瀹瑰櫒)鍗沖彲
鐒跺悗緇欏綋鍓嶆帶浠舵寕涓婂竷灞綆$悊鍣ㄥ嵆鍙?br>涓嬮潰鏄竴涓畝鍗曠殑QT Layout鐨勪緥瀛?浠嶲T渚嬪瓙鏀圭殑)
{
Q_OBJECT
public:
Dialog();
private:
void createHorizontalGroupBox();
enum {button_number = 4};
QGroupBox *groupbox;
QPushButton *buttons[button_number];
QDialogButtonBox *buttonBox;
};
#include "dialog.h"
//! [0]
Dialog::Dialog()
{
createHorizontalGroupBox();
buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok
| QDialogButtonBox::Cancel);
connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept()));
connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
QVBoxLayout *mainLayout = new QVBoxLayout;
mainLayout->addWidget(groupbox);
mainLayout->addWidget(buttonBox);
setLayout(mainLayout);
setWindowTitle(tr("LayoutTest"));
}
void Dialog::createHorizontalGroupBox()
{
groupbox = new QGroupBox(tr("Layout Test"));
QHBoxLayout *layout = new QHBoxLayout;
buttons[0] = new QPushButton(tr("Button1"));
buttons[1] = new QPushButton(tr("Button2"));
buttons[2] = new QPushButton(tr("Button3"));
buttons[3] = new QPushButton(tr("Button4"));
for(int i = 0;i<button_number;i++)
layout->addWidget(buttons[i]);
groupbox->setLayout(layout);
}
鍑犱釜鐭ヨ瘑鐐?
1.groupbox = new QGroupBox(tr("Layout Test"));
Layout Test 鏄釜鏂囨湰榪欎釜鏃犻』瑙i噴
閭r鍛紵鏌ユ煡璧勬枡鐭ラ亾鏄負浜嗘敮鎸佸璇█
鍏堢煡閬撳嵆鍙互鍚庝嬌鐢ㄧ殑璇濆湪鍏蜂綋鏌ユ煡鍚?br>2.QDialogButtonBox鏄釜浠涔堜笢瑗?br> 鐪嬬湅鏈緇堢殑紼嬪簭鐣岄潰鍚?br> 鍘熸潵鏄璇濇鐨勭‘璁ゅ拰鍙栨秷鎸夐挳
鍐嶇湅淇″彿妲藉嚱鏁版棤闈炲氨鏄粦瀹氭寜閽埌鎿嶄綔鍑芥暟
connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept()));
connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
閭ccepted鍜宎ccept鍑芥暟鏈夊暐鍖哄埆?
鐪嬬湅鏂囨。
accept鍑芥暟鐨勮В閲婃槸:Hides the modal dialog and sets the result code to Accepted
accpeted鍑芥暟鐨勮В閲婃槸:This signal is emitted when the dialog has been accepted either
鍦ㄨ璇碤T鐨偆
瀛︿範QT鐨勪富瑕佺洰鐨勫氨鏄兂鍋氬仛鑴歌泲濂界湅濂界殑杞歡鐣岄潰
閭e氨璇曡瘯鐪嬪惂
鏌ュ埌鐨凲T鏈変竴涓悕鍙玅SS(CSS?)鐨勬枃浠跺彲浠ュ師鏉ユ崲鑲?br>閭e氨鏀規敼鐪嬪惂
#include <QFile>
#include <QStyleFactory>
#include <QTextStream>
#include "dialog.h"
void setSkin(QApplication* const app, QString const &skinFile);
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
setSkin(&app ,"skin.qss");
Dialog dialog;
dialog.show();
return app.exec();
}
void setSkin(QApplication* const app, QString const &skinFile)
{
QFile qss(skinFile);
qss.open(QFile::ReadOnly);
app->setStyleSheet(qss.readAll());
qss.close();
}
{
color:red;
background:url(setting.png)
}
鍚屾椂鎶婂畠鐨勮儗鏅緗負鍥劇墖stting.png
瀹屼簡
PS:濡傛灉瀛︿範鏂扮煡璇?
鍥浀鍚炴灒姣旇緝閫傚悎蹇熷涔?br>
]]>
3.libcurl 涓涓湁鍚嶇殑寮婧愮綉緇滅埇铏簱 闃塊噷鏃烘椇涓嬌鐢ㄥ埌浜?br>4.libeay32 OpenSSL Library
5.libtidy 涓涓笓闂ㄨВ鏋恏tm鐨勫簱
6.zlib 榪欎釜楝奸兘鐭ラ亾
7.freetype c鎺ュ彛鐨則ype2瀛椾綋澶勭悊搴?br>8.libmad 涓涓紪瑙g爜mp3鐨勫簱
9.libogg,絳?涓涓紪瑙g爜ogg闊抽鏍煎紡鐨勫簱
10.libsnd 涓涓紑婧愮殑緙栬В鐮佸崄澶氱闊抽鏍煎紡鐨勫簱
11.ffmpeg 涓涓叧浜庨煶棰戣棰戝鐞嗙殑搴?br>12.Freeimage,Cximage,Devil 榪?涓兘鏄敤鏉ュ鐞嗗浘褰㈢殑搴?br>13.libpng,libjpeg,....鍩烘湰鍚屼笂
14.angelscript 涓涓被浼糽ua鐨勮剼鏈紩鎿?鍏惰剼鏈鏍肩被浼間簬鏍囧噯c璇█
15.flac/flac++涓涓紪瑙g爜flac闊抽鏍煎紡鐨勫簱
16.tinyxml,rapidxml,libxml 閮芥槸鍏充簬xml瑙f瀽鏂歸潰鐨?br>17.luaplus,luabind閮芥槸娑夊強緇戝畾lua鍜宑++鐨勫簱
18.ode,bullet 寮婧愮殑鐗╃悊寮曟搸搴?br>19.timidity涓涓彲浠ユ妸mid闊抽鏍煎紡杞寲涓簑av鏍煎紡鐨勫簱
20.vlc涓涓被浼糵fmeg鐨勫簱
21.zthread涓涓被鍨媌oost-thread,pthread鐨刢++椋庢牸鐨勫綰跨▼搴?br>22.sigc++,sigslot淇″彿鎻掓Ы搴?綾誨瀷鐨勬湁boost涓殑signal
23.SDL 綆鍗曠殑闊抽瑙嗛搴?br>24.hge涓涓畝鍗曠殑浣跨敤ddraw鐨?緇存父鎴忓皬寮曟搸
25.opencv涓涓紑婧愮殑澶勭悊鍥懼艦鐨勫簱
26.mygui,cegui 閮芥槸娓告垙涓婁嬌鐢ㄧ殑GUI緋葷粺
27.楝肩伀娓告垙寮曟搸,Orge,閮芥槸寮婧愮殑娓告垙涓棿浠?br>28.Wxwidget涓涓紑婧愮殑璺ㄥ鉤鍙?綾諱技MFC
29.QT ..
30.loki涓涓疄楠屾ц川鐨刢++搴?br>31.ace涓涓綉緇滈氫俊搴?br>32.fmod涓涓湁鐐瑰悕姘旂殑娓告垙闊蟲晥寮曟搸
33.sqlite 涓涓紑婧愮殑妗岄潰鏁版嵁搴?br>
鏈畬寰呯畫
]]>
#define PARFSPAGE_HPP
#include <string>
#include <vector>
#include <tidy/buffio.h>
#include <tidy/fileio.h>
#include <tidy/tidy.h>
#include <tidy/tidyenum.h>
#include <tidy/platform.h>
//! 瑙f瀽html欏甸潰
class ParsePage
{
public:
typedef std::vector<std::string> String;
public:
ParsePage(int rank = 0,const std::string& cur = ""):rank(rank),cur(cur)
{
doc = tidyCreate();
root = tidyGetRoot(doc);
}
~ParsePage()
{
tidyRelease(doc);
}
public:
//! 瑙f瀽緇欏畾鏂囦歡
bool LoadFile(const char* file)
{
return 1 == tidyParseFile(doc,file);
}
//!瑙f瀽緇欏畾鍐呭瓨
bool LoadBuffer(const char* buffer)
{
return 1 == tidyParseString(doc,buffer);
}
//! 鍐呭瑙f瀽
void Check()
{
CheckHref(root);
}
//! 鑾峰彇閾炬帴
int GetLinkNumber()const{return links.size();}
std::string GetLinkByIndex(int index){return links.at(index);}
private:
void DoHref(TidyAttr attr);
void CheckHref(TidyNode node);
private:
TidyDoc doc;
TidyNode root;
std::string cur;
int rank;
String links;
};
#endif
//! ccsdu2004
#include "parsepage.hpp"
void ParsePage::DoHref(TidyAttr attr)
{
std::string href(tidyAttrValue(attr));
//! 閭鍦板潃
if(boost::algorithm::starts_with(href,"mailto:"))
{
}
//! 閾炬帴鍦板潃
else
{
if(boost::algorithm::starts_with(href,"http:"))
{
size_t itr = href.find_last_of('#');
if(itr != std::string::npos)
{
href = href.substr(0,itr);
}
}
else
{
if(boost::algorithm::contains(href,"#"))
return;
}
links.push_back(href);
}
}
void ParsePage::CheckHref(TidyNode node)
{
TidyNode child;
for(child = tidyGetChild(node);child;child = tidyGetNext(child))
{
TidyAttr attr = tidyAttrGetHREF(child);
if(attr)
{
DoHref(attr);
}
CheckHref(child);
}
}
]]>
鏈夐仐婕忚琛ュ厖
1.浠庡嚱鏁板姛鑳戒笂鑰冭檻瑕佹眰鍑芥暟鍔熻兘鍗曚竴涓嶈兘涓涓嚱鏁板熀鏈涓姛鑳?br>2.浠庡懡鍚嶈鍒欎笂鑰冭檻搴旇鍙橀噺,鍑芥暟鍛藉悕緇熶竴鍏蜂綋鏍規嵁鍚勪釜鍗曚綅鏈夋墍宸紓
3.浠庢槗璇繪т笂鑰冭檻
涓鑸嚱鏁板簲璇ュ啓鍑哄嚱鏁版弿榪?
涓轟簡鑳戒嬌鍑芥暟綆鍗曟槑浜嗗嚱鏁拌鏁頒笉瀹滃お闀夸互50琛屼負瀹?br> 鍑芥暟搴旇浠ュ崟涓榪斿洖璺緞涓轟匠
4.浠庡彉閲忎笂鑰冭檻搴旇灝藉彲鑳戒嬌鐢ㄥ眬閮ㄥ彉閲忚岄潪鍏ㄥ眬鍙橀噺
5.浠庡嚱鏁板仴澹т笂鑰冭檻鍑芥暟搴旇杈撳叆鍙傛暟鏄惁涓哄彲鑳界殑鍚堟硶鍊肩瓑絳?br>6.浠庡閿欐т笂鑰冭檻闇瑕佹敞鎰忓紓甯稿鐞?br>7.鍙﹀榪橀渶瑕佽冭檻鍑芥暟涓殑鍙橀噺鏄惁鍙兘浼氳秴鍑哄叾琛ㄧず鑼冨洿.
8.鍏朵粬....
]]>
#include <iostream>
#include <string.h>
#include <ctype.h>
#include <algorithm>
#include <iterator>
using namespace std;
void output(char* str,int len)
{
if(str == NULL || len <= 0)
return;
int* data = (int*)malloc(len);
char* tmp = (char*)malloc(len+1);
memset(data,0,len);
memset(tmp,0,sizeof(char)*len);
int index = 0;
int i = 0;
int j = 0;
int flag = isdigit(str[0]);
while(1)
{
if(i==len || i+j == len+1)
break;
if(isdigit(str[i+j]) == 0 && flag == 0)
{
i=i+j+1;
j=0;
flag = isdigit(str[i+j]);
}
else if(isdigit(str[i+j]) == 0 && flag != 0)
{
memset(tmp,0,sizeof(char)*(len+1));
strncpy(tmp,str+i,j);
data[index++] = atoi(tmp);
flag = 0;
}
else
{
j++;
}
}
std::sort(data,data+index);
std::copy(data,data+index,std::ostream_iterator<int>(std::cout," "));
free(tmp);
free(data);
}
int main(int argc,char *argv[])
{
char input[] = "33k&99+r5sw1f10gd4vc511gc3";
output(input,strlen(input));
system("PAUSE");
return EXIT_SUCCESS;
}
鍙﹀涓鐩存垜涓鐩村繁鍐檚trcpyn鍑芥暟鐢ㄤ簬澶嶅埗緇欏畾瀛楃涓叉病鍙戠幇搴撲腑鏈変竴涓被鍨嬬殑strncpy鍑芥暟
]]>
2.涓嬭澆cygwin 瀹夎鍖?br>3.浠ラ粯璁ら厤緗畨瑁卌ygwin
4.浠ラ粯璁ゆ柟寮忓畨瑁呯殑cygwin榪樼己灝戜竴浜涘簱榪橀渶瑕佸畨瑁呬笅鍒楀璞?br> x11,zlib,freetype絳夌瓑
5.鎴栬呭鏋滀笉鐭ラ亾閭d簺鍖呴渶瑕佸畨瑁呴偅灝卞叏閮ㄥ畨瑁呭惂 铏界劧絎ㄤ竴鐐逛絾鏄緢鏈夋晥錛?br>6.瑙e帇fontforge鍒癱ygwin涓嬬殑prj鐩綍
7.鐐瑰嚮cygwin鍒囨崲鐩綍鍒癴ontfogre涓?br>8.鎵ц/configure
9.make install
10.絳夊緟n涔?br>11.媯鏌ョ紪璇戠粨鏋?br>
]]>
浠ュ悗浣跨敤寰楃潃鐨?br>
#include <vector>
#include <algorithm>
#include <boost/assign.hpp>
#include <boost/function.hpp>
using namespace std;
using namespace boost;
using namespace boost::assign;
inline void print_(int t){cout<<t<<" ";}
inline void print(vector<int>& vec)
{
for_each(vec.begin(),vec.end(),print_);
cout<<endl;
}
//! 鍏ㄦ帓鍒楁祴璇?/span>
void test1()
{
vector<int> vec;
vec += 1,2,3,4,5,6,7,8;
sort(vec.begin(),vec.end());
int i = 0;
do
{
print(vec);
i++;
}
while(next_permutation(vec.begin(),vec.end()));
std::cout<<i<<std::endl;
}
//! 緇勫悎嫻嬭瘯
size_t test2(int n,int m,boost::function<void(std::vector<int>& vec)> fn)
{
vector<int> p,set;
p.insert(p.end(),m,1);
p.insert(p.end(),n-m,0);
for(int i = 0;i != p.size();++i)
set.push_back(i+1);
vector<int> vec;
size_t cnt = 0;
do{
for(int i = 0;i != p.size();++i)
if(p[i])
vec.push_back(set[i]);
fn(vec);
cnt ++;
vec.clear();
}while(prev_permutation( p.begin(), p.end()));
return cnt;
}
int main()
{
test1();
std::cout<<test2(20,3,print)<<std::endl;
return 0;
}
]]>
褰撳墠鍦ㄤ睛嫻媍pu娓╁害鏂歸潰鍋氬緱鏈濂界殑鏄痗ore temp,
鍏朵粬鐨勭浉鍏寵蔣浠舵湁cpu Informer,cpu-z,浼樺寲澶у笀,椴佸ぇ甯堢瓑絳?br>鍙兘鑾峰彇cpu娓╁害鐨勯斿緞(win2涓?
鏈墂inio,ring0,smbus,姹囩紪,wmi,apic,bios絳夌瓑
浣嗘槸鏁堟灉閮藉緢宸?br>鏈変漢鏈変粈涔堝ソ鐨勫姙娉曞彲浠ヨ幏寰?br>嬈㈣繋璁ㄨ
]]>
{
if(argc < 2)
{
cout<<"need para."<<endl;
system("PAUSE");
return -1;
}
bool is_input_file_para = false;
bool is_output_file_para = false;
for(int i = 1; i < argc;i++)
{
if(strcmp(argv[i],"-read") == 0)
{
is_input_file_para = true;
is_output_file_para = false;
}
else if(strcmp(argv[i],"-write") == 0)
{
is_input_file_para = false;
is_output_file_para = true;
}
else
{
if(is_input_file_para == true)
{
input_file_name = argv[i];
is_output_file_para = true;
}
else if(is_output_file_para == true)
{
output_file_name = argv[i];
is_input_file_para = true;
}
}
}
return 1;
}
璇ュ嚱鏁拌В鏋愬懡浠よ鑾峰彇杈撳叆鏂囦歡鍜岃緭鍑烘枃浠跺悕瀛?br>浣跨敤鏂規硶涓?
srilm_lm -read gonewiththewind.count -write gonewiththewind.lm
鍏朵腑srilm_lm涓虹▼搴忓悕
璇ュ嚱鏁板彲浣跨敤浜巜in32鍜寀tunbu涓?br>
]]>
1.浣跨敤
std::string tok;
while(getline(str,tok,(char)32)){}
string t1,t2,t3,t4;
str >>t1;
str >>t2;
str >>t3;
str >>t4;
姣斿:
for(boost::tokenizer<>::iterator beg=ss.begin(); beg!=ss.end(); ++beg){cout<<*beg<<endl;}
濡傛灉闇瑕佸畾鍒跺叾妯℃澘鍙傛暟
鍙互鎸夌収涓嬮潰鐨勪功鍐?
{
public:
char_separator(char c):sep(c){}
void reset(){}
template <typename InputIterator,typename Token>
bool operator()(InputIterator& next,InputIterator end,Token& tok)
{
tok = Token();
for(;next != end && *next == sep;++next);
if (next == end)
return false;
for(;next != end && *next != sep;++next)
{
tok += *next;
}
return true;
}
private:
char sep;
};
for(boost::tokenizer<char_separator>::iterator beg=mytok.begin(); beg!=mytok.end(); ++beg)
{
if(index == 0)
text1 = *beg;
else if(index == 1)
text2 = *beg;
else if(index == 2)
text3 = *beg;
else if(index == 3)
text4 = *beg;
index++;
}
#include <iostream>
#include <string>
#include <vector>
#include <iostream>
#include <iterator>
#include <functional>
#include <boost/algorithm/string/classification.hpp>
#include <boost/algorithm/string/split.hpp>
#include <boost/algorithm/string/find_iterator.hpp>
using namespace std;
using namespace boost;
int main(int argc, char *argv[])
{
vector<string> strlist;
string str("12 34 56 678 ccsdu2004");
split(strlist,str,is_any_of(" "),token_compress_on);
for(unsigned int index=0;index<strlist.size();index++)
{
cout<<index <<":"<<strlist[index]<<endl;
};
system("PAUSE");
return EXIT_SUCCESS;
}
...
]]>