2009年08月09日 星期日 08:20 P.M.
1.输出到stderr ACE_LOG_MSG->open (argv[0], ACE_Log_Msg::STDERR); ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("test\n"))); 或者: ACE_LOG_MSG->set_flags (ACE_Log_Msg::STDERR); ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("test\n"))); 2.输出到文件 ACE_OSTREAM_TYPE *output = new ofstream ("test.txt"); ACE_LOG_MSG->msg_ostream (output, 1); ACE_LOG_MSG->set_flags (ACE_Log_Msg::OSTREAM); ACE_LOG_MSG->clr_flags (ACE_Log_Msg::STDERR); 3. |
2009年08月09日 星期日 04:47 P.M.
假设用户名为cc
安装ace前提需要先安装好openssl包括: libssl0.9.8,libssl0.9.8-dbg,libssl-dev
1.创建/home/cc/ACE
2.把ACE-5.6.9.tar.gz拷贝到/home/cc/ACE下
3.解压 tar zxvf ACE-5.6.9.tar.gz 结压后结果可看到/home/cc/ACE/目录下生成了ACe_wrappers
4.执行 cd ACE_wrappers
5.执行 mkdir build为编译专门使用一目录
6.执行 cd build
7.预编译在build目录下执行 ../configure
8.执行 make
9.执行 make install
10.在/etc/profile里添加
ACE_ROOT=/home/cc/ACE/ACE_wrapper |
2009年08月02日 星期日 09:01 P.M.
regex的例子:
#include <boost/regex.hpp> #include <iostream> #include <string>
int main() { std::string line; boost::regex pat( "^Subject: (Re: |Aw: )*(.*)" );
while (std::cin) { std::getline(std::cin, line); boost::smatch matches; if (boost::regex_match(line, matches, pat)) std::cout << matches[2] << std::endl; / |
2009年08月02日 星期日 07:48 P.M.
使用环境ubuntu g++
安装boost只需要运行
apt-get install libboost-dev libboost-dbg libboost-doc bcp libboost-*
运行完毕就安装完了
第一个例子,是使用boost中的lexical_cast组件的
#include <boost/lexical_cast.hpp> #include <iostream> int main() { using boost::lexical_cast; int a =
|
2009年08月02日 星期日 09:21 A.M.
哎,别人总以为学计算机的人都该是计算机全能的,郁闷!
做了个图,秉承中国的水墨特色.
|
2009年07月01日 星期三 12:36 P.M.
'split.vbs
'产出的每个文件的行数
fileMaxline=100
'需要处理的文件名
fileName="D:\aa.xx"
Set fs =createobject("scripting.filesystemobject")
Set fsOut =createobject("scripting.filesystemobject")
set f=fs.opentextfile(fileName,1,true)
Count=0
Do while f.atendofstream<>true
If (Count Mod fileMaxline)=0 Then
Set fout=fsOut.opentextfile(fileName&"_"&Count,8,True)
End If
Count=Count+ |
2009年06月02日 星期二 09:21 A.M.
IMPORT 选项:
IMPORT 基本上是一个向表中批量插入数据的实用程序。这种批量插入操作就象正常的插入语句,因为它对活动记录日志,对索引进行更新,对引用完整性进行检查,还对表约束进行检查。缺省情况下,IMPORT 只在操作结束时提交一次。如果向表中导入或插入了大量的行,那么就需要足够的事务日志以备回滚和恢复。您可以请求进行定期提交,以防止日志变满。如果在导入操作期间发生故障,那么定期提交插入操作还能使您减少丢失的行的数目。COMMITCOUNT 选项强制在导入一定数量的记录之后进行 COMMIT。这里有一个演示 COMMITCOUNT |
2009年05月24日 星期日 05:45 P.M.
在之前一直有个误解,认为把表的全部字段建立索引跟不建是一样的,所以在一次实际应用中,当数据量到达了100万之后,检索速度明显地慢,而且在执行查询时间cpu占用率非常的高,导致影响到了其它的作业引发连锁的反应.
跟一些朋友探讨后,明白了一个观点,虽然表的全部字段建立索引,看上去是查全表,不建索引也是查全表,但是,这查询的效率问题决定于数据的存储方式,以及在该存储方式下的查询算法,朋友指出,索引的存储与查询是b tree方式的,而表数据的存储则不然.可以想像,表数据也存成b tree |
2009年05月14日 星期四 08:46 A.M.
今天在infoq里面看到了一个叫“蓝天使”模型,其中里面有一点,
“你只能在这个团队服务3年:一年用来熟悉同伴,一年用来做到最好,最后一年用来培养替代你的人。”
有体会,资力老越来越会排斥新的技术及思维,并不有利于团队的长远发展。活力在于更新! |
2009年04月16日 星期四 06:00 P.M.
1.新建MFC ActiveX ControlWizard项目
2.右键项目New ATL Object 选择Controls -> Full Control
3.新添外部调用方法时,点刚才建出的atl对象右键Add Method
参数说明,如果是输入参数在参数前加[in],如果是输出参数在参数前加[out, retval]
4.实现方法如(其中bstrOutput在创建是标注了[out, retval])
STDMETHODIMP Cmmssec::getToken(BSTR *bstrOutput)
{
// TODO: Add your implementation code here
CComBSTR out(_T("HelloWorld"));
*bstrOutput = out.De |
2009年04月08日 星期三 09:19 A.M.
db2中使用到自增主键,他的实现中会绑定一个序列来实现,如果数据使用load来加载数据,相应的序列并没有按正常情况往上涨,这样,在后续使用insert into插入时,如省略掉主键的填值,插入时序列会从未执行load时开始增涨,就会有出现重复键值插入失败的情况。 |
2009年03月23日 星期一 07:27 P.M.
ebcdic码为as400/os390主机常用编码,在微机处理时需要进行对该码的转换才能正确显示中英文等字符。ebcdic码对中文的处理,会在连续中文的前面加上0E在尾部加上0F来区别.
jdk在1.4版本以后都有对他的转码方法,对应java版本他的名字叫1388码,所以可以通过new String(bytes,"1388")进行转换. |
2009年02月16日 星期一 09:37 A.M.
偶然的触动,我玩上了“天下贰”!
我在里面又一次找到了我的团队,我的朋友的感觉。
喜欢团队活动,大学时期的开发团队,随着毕业大家都天南地北了,散光了,一个人的打拼,觉得真没意思,没有团队的凝聚,啥兴趣都是三两天的事情。
挺佩服这个游戏的思想,突出团队任务的重要性,不像以前玩的“传奇”那样每天只能打怪升级。没有朋友玩的游戏也是一个单机游戏,玩得无聊~`
我们几 |
2009年02月12日 星期四 03:36 P.M.
作为小市民的我,总买不到最便宜的东西~ 
lenovo y430又降了不少,
广州的朋友用4800rmb就拿下了1G内存配置的,
之前我买时还花了5350rmb拿下的2G内存配置,
小打击~`
给些安慰自己,我的可是带发票+金士顿的内存+一个单肩背包`(虽然我觉得这个背包没啥用)
嗯,不用亏太多就行,经典用语:“乐和乐和,得了”,现在啥都提爱国消费嘛! |
2009年02月12日 星期四 03:29 P.M.
可用来计算某个逻辑会消耗多少jvm内存
public class TestMemory {
public static void main(String[] args) throws Exception {
runGC();
long start = Runtime.getRuntime().totalMemory();
Runtime.getRuntime().gc();
execute();
|