http://blog.sina.com.cn/supermanwg[订阅][手机订阅]
个人资料
分类
    内容读取中…
评论
读取中...
图片幻灯
访客
读取中...
好友
读取中...
音乐播放器
博文
CString用法(2009-03-20 10:12)
CString类功能强大,比STL的string类有过之无不及.新手使用CString时,都会被它强大的功能所吸引.然而由于对它内部机制的不了解,新手在将CString向C的字符数组转换时容易出现很多问题.因为CString已经重载了LPCTSTR运算符,所以CString类向 const char *转换时没有什么麻烦,如下所示:
  char a[100];
  CString str('aaaaaa');
  strncpy(a,(LPCTSTR)str,sizeof(a));
  或者如下:
  strncpy(a,str,sizeof(a));

  以上两种用法都是正确地.因为strncpy的第二个参数类型为const char *.所以编译器会自动将CString类转换成const char *.很多人对LPCTSTR是什么东西迷惑不解,让我们来看看:

  1.LP表示长指针,在win16下有长指针(LP)和短指针(P)的区别,而在win32下是没有区别的,都是32位.所以这里的LP和P是等价的.

  2.C表示const

  3.T是什么东西呢,我们知道TCHAR在采用UNICODE方式编译时是wchar_t,在普通时编译成char那么就可以看出LPCTSTR (PCTSTR)在UINCODE时是const wchar_t *,PCWSTR,LPCWSTR,在多字节字符模式时是const char *, PCSTR,LPCSTR.接下来我们看在非UNICODE情况

单播”(Unicast)、“多播”(Multicast)和“广播”(Broadcast)这三个术语都是用来描述网络节点之间通讯方式的术语。那么这些术语究竟是什么意思?区别何在?.

1.单播:网络节点之间的通信就好像是人们之间的对话一样。如果一个人对另外一个人说话,那么用网络技术的术语来描述就是“单播”,此时信息的接收和传递只在两个节点之间进行。单播在网络中得到了广泛的应用,网络上绝大部分的数据都是以单播的形式传输的,只是一般网络用户不知道而已。例如,你在收发电子邮件、浏览网页时,必须与邮件服务器、Web服务器建立连接,此时使用的就是单播数据传输方式。但是通常使用“点对点通信”(Point to Point)代替“单播”,因为“单播”一般与“多播”和“广播”相对应使用。

2.多播:“多播”也可以称为“组播”,在网络技术的应用并不是很多,网上视频会议、网上视频点播特别适合采用多播方式。因为如果采用单播方式,逐个节点传输,有多少个目标节点,就会有多少次传送过程,这种方式显然效率极低,是不可取的;如果采用不区分目标、全部发送的广播方式,虽然一次可以传

Java的xml解析器(2009-02-13 21:57)
常用的Java xml解析器有Xerces,JDOM,dom4j和StAX.其中Apache.org的Xerces有C和Java的两种实现.

他们的网站分别是
Xerces http://xerces.apache.org
JDOM http://www.jdom.org
dom4j http://www.sourceforge.net/projects/dom4j
StAX http://stax.codehaus.org/

JDOM最近版本是2004年发的,已经很久没有更新了.相比之下,dom4j的应用更加广泛,功能也强大的多.(据说dom4j的开发人员是从JDOM那里跑出来的...)另外StAX似乎在最近一段时间比较热,下面是一片文章
---------------------------------------------------------------------------------------------------
在JDK 6.0中基于StAX分析XML数据

J2EE/XML 开发者通常都是使用文档对象模型(DOM)API或简单的API for XML(SAX) API来分析XML文档。然而,这些API都有其缺点。其中,DOM API的缺点之一是消耗大量的内存,因为在该XML文档可以被导航之前,必须创建一个完整的XML文档的内存结构。而SAX API的缺点在于,它实例了一种推分析模型API,其中分析事件是由分析器生成的。比较之下,StAX则是基于一种拉分析模型。在本文中,你
稿件号(2009-02-12 10:39)
第一步:基本信息完成 [ 你的稿件ID号:200902121036173382请保存ID号及密码。 ]
 
第二步:上传稿件 [ 注意:上传需要时间,请耐心等待,系统会给出上传结果。]

[ 如果上传失败请用刚才生成的ID号和密码登录编辑更新稿件即可,无需多次投稿。]
智力题大全(2009-02-10 18:53)

虽然把这类题目归为一个大类,但他们本身之间却绝少相同之处。每个题目都需要你打破思维的常规来回答。稍有不慎,就可能落入圈套。
例题1:你让工人为你工作7天,给工人的回报是一根金条。金条平分成相连的7段,你必须在每天结束时给他们一段金条,如果只许你两次把金条弄断,你如何给你的工人付费?
小蒲(现在微创工作,去年遭遇这道试题):这道试题相对其它一些微创考题还是简单的,可仍然把我弄得头大。当时我是这样做这道题的。两次弄断就应分成三份,我把金条分成1/7、2/7和4/7三份。这样,第1天我就可以给他1/7;第2天我给他2/7,让他找回我1/7;第3天我就再给他1/7,加上原先的2/7就是3/7;第4天我给他那块4/7,让他找回那两块1/7和2/7的金条;第5天,再给他1/7;第6天和第2天一样;第7天给他找回的那个1/7。
例题2

修改/etc/sysconfig/language文件,将RC_LANG, RC_LC_ALL设置为zh_CN.GB2312, 同时将ROOT_USES_LANG设置为 'yes'

 

 

一。linux系统的默认编码设置。
/etc/sysconfig/i18n
Controls the system font settings. The language variables are used in /etc/profile.d/lang.sh. An example i18n file:
LANG='zh_CN.GB18030'
LANGUAGE='zh_CN.GB18030:zh_CN.GB2312:zh_CN'
SUPPORTED='zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en'
SYSFONT='lat0-sun16'
以上是把系统的默认字符集设置为GB2312.现在很多系统默认编码字符集是UTF-8。可以通过设置这个文件来改变系统的默认字符集。

另外,也可在用户的环境变量或者用户的环境变量文件加入路径变量的声明:
在系统的预处理文件中声明,这样对整个系统起作用:
   #vi /etc/profile
   在文件尾加入
   LC_ALL='zh_CN.GBK'
   export LANG='zh_CN.GBK'
在用户的预处理文件中声明,对单独的用户起作用:
   #vi /root/.bash_profile
 &

java字符集编码(转)(2009-02-07 12:26)
  1. 概述


  本文主要包括以下几个方面:编码基本知识,java,系统软件,url,工具软件等。
在下面的描述中,将以 '中文'两个字为例,经查表可以知道其GB2312编码是'd6d0 cec4',Unicode编码为'4e2d 6587',UTF编码就是'e4b8ad e69687'。注意,这两个字没有iso8859-1编码,但可以用iso8859-1编码来'表示'。

2. 编码基本知识

  最早的编码是iso8859-1,和ascii编码相似。但为了方便表示各种各样的语言,逐渐出现了很多标准编码,重要的有如下几个。

2.1. iso8859-1

  属于单字节编码,最多能表示的字符范围是0-255,应用于英文系列。比如,字母'a'的编码为0x61=97。
很 明显,iso8859-1编码表示的字符范围很窄,无法表示中文字符。但是,由于是单字节编码,和计算机最基础的表示单位一致,所以很多时候,仍旧使用 iso8859-1编码来表示。而且在很多协议上,默认使用该编码。比如,虽然'中文'两个字不存在iso8859-1编码,以gb2312编码为例,应 该是'd6d0 cec4'两个字符,使用iso8859-1编码的时候则将它拆开为4个字节来表示:'d6 d0 ce c4'(事实上,在进行存储的时候,也是以字节

今天遇到了一个奇怪的问题。从公司拷回家了一些东西,想回家加班做一下,但回家布置好工程以后,发现查询东西的时候总是有问题,数据库中明明有记录,可是就是查询不出东西来,非常郁闷。

  这里,我说明一下,我使用的数据库是mysql5.0,jdk是1.5,开发工具使用的是eclipse3.2。于是开始查询产生问题的原因。最后发现每当我执行的sql语句中含有中文的时候,返回的ResultSet便为空。很是郁闷。

  经分析属于数据库编码问题导致的。于是开始察看数据库的编码。我们可以在mysql的安装路径中找到一个叫做my.ini的文件。发现它的字符集设置为:“default-character-set=latin1”,再回头看看公司里配置的mysql字符集为:“default-character-set=gbk”。于是将本地my.ini中所有的default-character-set=latin1全部改为了default-character-set=gbk,在执行一次,终于可以使用了。

  好了,让我们来总结一下吧!

  当出现了由于mysql数据库字符集编码问题导致不能正常执行sql语句的时候,我们可以将mysql安装路径下的my.ini文件打开,把里边的字符集全部设置为gbk即可。即设置default-character-set=gbk。
注意,一般my.ini中有

内容摘要:昨天用导入数据的时候发现有的地方有这个错误。后来才发现我用RPM包装的MYSQL配置文件里面有old_passwords=1去掉就可以了。

  昨天用导入数据的时候发现有的地方有这个错误。后来才发现我用RPM包装的MYSQL配置文件里面有old_passwords=1去掉就可以了。

Got a packet bigger than ‘max_allowed_packet’ bytes or ERROR 1153 (08S01) at line 616: Got a packet bigger than ‘max_allowed_packet’ by tes...

  昨天用导入数据的时候发现有的地方有这个错误。

  后来才发现我用RPM包装的MYSQL配置文件里面有old_passwords=1去掉就可以了。

  还有加了max_allowed_packet=500M这样就不会出错了。

  PS:建议在5.0后的版本中关掉old_passwords选项。

  如果你不知道你的OLD_PASSWORDS是不是开启了,可以用命令。

show VARIABLES like '%old_passwords%';

query result(1 records)


1MYSQL

C:\>mysql -uroot -p
Enter password: ******
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.1.22-rc-community-log MySQL Community Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> grant all privileges on *.* to 'yourname'@'%' identified by 'youpasswd';
Query OK, 0 rows affected (0.05 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.06 sec)

mysql> exit
Bye
3306
http://www.google.cn/search?hl=zh-CN&q=%E5%BC%80%E5%90%AF3306&meta=
2SQLYogMYSQL

HOST ADDRESS:IP
USER NAMEyourname
PASSWORD:yourpasswd
PORTS3306
DATABASES