<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
  <title>张玉才博客</title>
  <link>http://blog.zjxu.edu.cn/zyc/</link>
  <description>张玉才博客</description>
  <language>zh-cn</language>
  <copyright><![CDATA[Copyright 2007 JXXYBLOG v1.0]]></copyright>
  <webMaster><![CDATA[jxxyzyc@126.com(张玉才)]]></webMaster>
  <generator>JXXYBLOG v1.0</generator> 
  <image>
	<title>张玉才博客</title> 
	<url>http://blog.zjxu.edu.cn/zyc/images/logos.gif</url> 
	<link>http://blog.zjxu.edu.cn/zyc/</link> 
	<description>张玉才博客</description> 
  </image>

<item>
  <link>http://blog.zjxu.edu.cn/zyc//readblog.asp?id=22</link>
  <title><![CDATA[在PB中如何获取磁盘的序列号]]></title>
  <author>jxxyzyc@126.com(张玉才)</author>
  <category><![CDATA[本站原创]]></category>
  <pubDate>2008-6-15</pubDate>
  <guid>http://blog.zjxu.edu.cn/zyc//readblog.asp?id=22</guid>
  <description><![CDATA[首先定义全局API函数：<br/>Function   Boolean   GetVolumeInformationA(   &     <br/>ref   String   ls_Rootpath,   &     <br/>ref   String   ls_volumnename,   &     <br/>Ulong   lul_VolumeNameSize,   ref   Ulong   lul_VolumeSerialNumber,   &     <br/>ref   Ulong   lul_MaximumComponentLength,   &     <br/>ref   Ulong   lul_FileSystemFlags,   &     <br/>ref   String   ls_FileSystemNameBuffer,   &     <br/>Ulong   lul_FileSystemNameSize   &     <br/>)   Library   &quot;Kernel32.dll&quot; <br/><br/>=============================================<br/>在程序中调用的方法：<br/>  String   ls_Rootpath,   ls_volumnename     <br/>  ls_Rootpath   =   &quot;C:&quot;   //   指定要得到序列号的硬盘，     <br/>  ls_volumnename   =   Space(256)   //   分配足够的空间，下同     <br/>  Ulong   lul_VolumeNameSize     <br/>  lul_VolumeNameSize   =   256     <br/>  Ulong   lul_VolumeSerialNumber,   lul_MaximumComponentLength,   lul_FileSystemFlags     <br/>  lul_MaximumComponentLength   =   256     <br/>  String   ls_FileSystemNameBuffer     <br/>  ls_FileSystemNameBuffer   =   space(256)     <br/>  Ulong   lul_FileSystemNameSize     <br/>  lul_FileSystemNameSize   =   256     <br/>  boolean   lb_rtn     <br/>  lb_rtn   =   False     <br/>  lb_rtn   =   GetVolumeInformationA(ls_Rootpath,   ls_volumnename,   lul_VolumeNameSize, &    <br/>  lul_VolumeSerialNumber,   lul_MaximumComponentLength,   lul_FileSystemFlags,     &<br/>  ls_FileSystemNameBuffer,   lul_FileSystemNameSize)     <br/>  if   lb_rtn   =   flase   then     <br/>   &nbsp;MessageBox(&quot;提示&quot;,&quot;函数调用失败!&quot;)    <br/>&nbsp;return<br/>  end   if     <br/>  sle_1.text   =   String(lul_VolumeSerialNumber)   //   得到硬盘序列号     <br/>]]></description>
  </item>

<item>
  <link>http://blog.zjxu.edu.cn/zyc//readblog.asp?id=21</link>
  <title><![CDATA[中国军方压制日本的五大王牌武器 ]]></title>
  <author>jxxyzyc@126.com(张玉才)</author>
  <category><![CDATA[转载]]></category>
  <pubDate>2008-4-28</pubDate>
  <guid>http://blog.zjxu.edu.cn/zyc//readblog.asp?id=21</guid>
  <description><![CDATA[中国军方压制日本的五大王牌武器 <br/><br/>一、武直-10中国陆航的顶级奘备<br/><br/>    作为一项顶级装备，中国对武直-10型直升机坐了严格的保密工作，外界对它的具体性能参数几乎一无所知，推测可能携带空对面和空对空导弹，除了可以摧毁人员车辆和坦克外，海上高度行进的快艇、空中飞行的直升机也难逃它的攻击。台湾军事杂志评论称，论对目标的打击效果，武直-10的威力完全可以超过美国的阿帕奇直升机。<br/><br/>二、歼-10战斗机——压制日本战机的利器<br/><br/>    研制时间堪称世界之最的歼-10战斗机，采用了大量以色列和俄罗斯的先进技术，作为集三国科技精华于一身的新型“战鹰”，其性能已经达到“三代半”战斗机的水平。汉和分析认为，歼-10当前的主要任务是夺取制空权，能与头盔瞄准具互联。<br/><br/>三、现代Ⅱ级驱逐舰——让美日海军寝食难安<br/><br/>    中国向俄罗斯订购了两艘性能升级的956EM现代Ⅱ级驱逐舰，引起了国内外的极大反响。<br/>解放军一款专用于压制敌方雷达的运-8电子干扰机<br/>    第一艘现代Ⅱ驱逐舰交付中国让美日海军寝食难安，这艘大型战舰在2006年如何执行战备，将成为西方中国军事问题专家紧密追踪的焦点。<br/><br/>    现代Ⅱ级驱逐舰兼容并蓄了俄罗斯最新的战舰制造技术，重点位置采用隐身材料制造。它还打破了俄式战舰不适宜人员生存的惯例，将舰上乘员活动区的舒适性考虑进来。和它的前辈相比，现代Ⅱ级舰仍把进攻当作最好的防御，目前俄国内提供的信息显示，现代Ⅱ级舰的“杀手锏”是射程达到240公里的 3M80BEM反舰导弹。据美国的《防务新闻》的评论文章称，经过改进的现代Ⅱ级驱逐舰，比中国现有的中型战舰更适于远洋航行和作战，除反潜能力仍较日本 “金刚”级驱逐舰差外，其防空和反舰能力均大幅领先于“金刚”级。<br/><br/>四、远程自行火炮——精确射程50公里<br/><br/>    中国北方工业公司推出了一款全新的155毫米口径自行火炮，新火炮的名称可能为PLZ-05型自行火炮。由于中国是世界上少有的能制造高精度远程火炮的国家，这一新产品无疑让国际市场上的美欧军火商感到紧张不安。<br/>    目前外界尚不知道，这种最新设计的自行火炮是供解放军陆军使用还是率先用于出口。　<br/>    科威特陆军在20世纪90年代进口了中国的PLZ-45型自行火炮，该炮发射特殊弹药时，可以对39公里外的目标进行毁灭性打击，这一能力超过了美军现役火炮。PLZ-05将更加出色，它的炮管比PLZ-45长出一大截，使用激光精确制导炮弹，能在50公里外命中一个小地堡。<br/><br/>五、空警-2000——性能超过美俄<br/><br/>    中国在未来将建立起全自动化的国土综合防控系统，而空警-2000预警机将在其中起到决定性作用。有迹象显示，中国已经掌握了预警机的核心制造技术，空警-2000只是中国国产预警机进行飞行测试和雷达工作效果认证的工具。<br/><br/><br/>(完) <br/>]]></description>
  </item>

<item>
  <link>http://blog.zjxu.edu.cn/zyc//readblog.asp?id=20</link>
  <title><![CDATA[李敖自白：我为什么偏袒共产党？ ]]></title>
  <author>jxxyzyc@126.com(张玉才)</author>
  <category><![CDATA[转自]]></category>
  <pubDate>2008-4-28</pubDate>
  <guid>http://blog.zjxu.edu.cn/zyc//readblog.asp?id=20</guid>
  <description><![CDATA[李敖自白：我为什么偏袒共产党？ <br/>从小可以喻大，我们看到人类很多事情，看到了很多革命的先行者，在革命成功了以后，他要怎么面对。我跟大家讲过，我们中国在一九四九年以后，就发生了这种现象。一九四九年以后，当那个反革命的蒋介石兵败山倒，赶到了台湾去的时候，那些伟大的革命者在中国的大陆，他们就面对了一个问题，我们现在要建设一个新的中国，新的中国站起来了，我们要建设新的中国。可是这些搞革命有一手的专家，他们对建国不一定有一手，有的时候他会跟不上，所以呢，就正如毛泽东所说的，他们也在摸索，并不是一开始我们觉得什么都会，不是的，我们也在摸索,在摸索的过程里面，就会走错路，走错路就 会付代价，这就是邓小平的最后的统计。在《邓小平文选》里面，我给家展示过几次邓小平的统计，就是从大跃进到文化大革命，前后浪费了二十年，换句话说呢，有二十年的时间是走了错路，二十年时间走错路，我们付了太大的代价。这就是说，我们虽然是革命的先行者，我们虽然是发明了留声机的人，可是当留声机不断地进步的时候，它的唱片在进步的时候，要由滚筒式变成黑胶式，黑胶式还要变成很薄片的，像面包一样，有薄片厚片之别的时候，这个时候你要转过来，要跟著上，还要迎头赶上，还要超越前进，这个时候就很费力了，这就是整个的一个情况。   <br/>　　  <br/>    有人在网站里面谈到我李敖，说你李敖有点偏心哦，你对中国的批评，凡是涉及到国民党部分，涉及台湾的部分，你就比较苛刻，比较严格，涉及到共产党部分，中国大陆的部分你就比较宽大，比较松，你是不是两面人啊？国民党关了你，你就骂它骂得狠，对共产党你就客气，是不是啊？我跟大家说，你太小看了，把我李敖看得太小了，你小心眼，你的见识啊就变小了。中国古代一位了不起的思想家，也是政治家叫做晏子，晏子有一次呢出门，有个女孩子在路上拦他，漂漂亮亮的这个女孩子啊，就要私下跟晏子讲一句话，什么话呢？她跟晏子说我有一件事情啊要拜托你，什么事情呢？说我爸爸遭遇什么困难，我希望你帮我爸爸解决这个问题，什么代价呢？我愿意陪你睡觉，许身给你陪你睡觉。这个晏子就很感慨，感慨什么呢？说我给人家什么印象，什么坏印象，居然使这个女孩子觉得她陪我睡觉，认为用这种代价，我就会帮她忙，就表示我根本品格很低嘛，我的水准很低嘛，水平很差嘛！人家用这种标准来看我。    <br/><br/>　　我告诉大家，用很多标准来看人的时候，不要小看了人，我李敖就国民党关了我，我就恨国民党啊？共产党没关我，我就捧共产党？太小看了人，我是告诉大家，为什么两个标准不一样，其实是一样的，就是说，我们要给他们时间，什么时间？一九四九年中国共产党抢到了中国的统治权的时候，是一穷二白，国民党把能搬走的全搬走，能炸掉的全炸掉，留给中国大陆是两百万土豪劣绅、流亡土匪要你清除，清除这个台面，国民党把整个国库九十二万两黄金搬到台湾去，请问共产党在接受这个摊子的时候，要使中国能够慢慢复原，是不是要一段时间？因为被国民党打劫得这么严重，破坏得这么严重，赶上了美国人在韩战出了问题，高丽战争出来了，又为了中国的安全，中国的尊严，一定要跟美国帝国主义打一仗，这个时候又打了这个战争的时候，中国要不要付很多代价？所以这个时候啊，我们发现连吃顿饱饭都是很难的时候，谈什么事情，先谈吃饭要紧嘛！就这样子啊，是在这个情况底下，慢慢地成长起来的，然后再经过自己的错误，从文化大革命再往前算，从大跃进开始，如邓小平所说，我们耽误了二十年，说这个时候呢，我们在摸索里面前进，好容易现在由于邓小平最后他处理的方法的正确，总算目前现在开始走这条路了，不是吗？中国不?这样走来了吗？    <br/><br/>　　我李敖小的时候，亲眼看过日本兵骑著马，在我们的国家里面那样子耀武扬威，所以对我这个年纪说起来，一个强大的中国对我是非常重要的，对我的信仰是非常重要的。所以我在跟大家讲，我们中国讲富国强兵，什么叫富国强兵？大家看，中国的《二十四史》，就《二十五史》里面，《史记》里面的，《孟子荀卿列传》里面的一段话，他说当时的秦国，秦用商君，就是商鞅，富国强兵，这四个字太吸引我了。我们中国太穷了，谈不到富国，可是强兵很重要，为什么呢？因为从鸦片战争以来，中国人被洋鬼子打，我们中国国力太弱了，这个洋鬼子里包括东洋鬼子，包括日本人，所以跟我说起来，我们中国有一个武力，使全世界的洋鬼子、东洋鬼子不敢打我们，这个对我李敖太重要了，对我们中国也太重要了。今天享受到这种结果的人，知道不在话下，当然没人敢打我们，可是你知道我们付了多少代价吗？我们花了一百五十年的时间，花了千万人头落地的代价，才换得了最后中国还没有富国可是先强兵的这个境界，我们付了那么多代价。  <br/>   <br/>    通过这些比较可以看出，中华民族五千年的历史上，第一位巨人毫无疑问是毛泽东，因为他起到了其他人无法代替的作用。他诞生的时代，中华民族正处于历史上的最低点，面临生死存亡的危急关头。众所周知，当时的世界上没有谁瞧得起中国人，&quot;东亚病夫&quot;和&quot;华人与狗不得入内&quot;成为中国人深切的耻辱和隐痛。正是毛泽东使中国站起来了，朝鲜战争使全世界都对中国刮目相看，从此中国人扬眉吐气。中国成为举世公认的世界军事强国。         <br/>   <br/>    但中国成为世界军事强国，并不等于世界经济强国。20世纪强国与弱国、富国与穷国的主要标志是工业化的程度。又是毛泽东使中国在短短二十多年内走完了西方发达国家上百年才能走完的工业化道路，成为世界主要工业强国之一。到1980年，中国的工业规模已经超过世界老牌工业强国英法两国，直逼在西方强国中坐第三把交椅的西德(见美国著名学者保罗 <br/>肯尼迪的名著《大国的兴衰》)。20世纪80年代中期，中国的工业总产值跃居世界第三位。 <br/>   <br/>    目前许多人有一种错误认识，即认为毛泽东不懂经济，导致中国大陆的发展落后于同期的日本和&quot;四小龙&quot;。这是当今最大的谬误。首先，日本和&quot;四小龙&quot;的起点与中国不一样。日本在明治维新后就开始了工业化，到二战时，日本能够年产上万架飞机，而中国连一架飞机都不能制造。许多人以为德国和日本经过二战，变成了一片废墟，其实战时德国和日本的工厂都隐藏到地下或者分散，美国的飞机根本奈何不得，否则美国根本不需要扔原子弹和拉拢苏联出兵，用飞机将倭国工厂统统炸光就行了。手持木棍的日本兵还抵挡美国人吗?日本到1945年7月仍有月产上千架飞机的能力，比1942年的飞机月产量还高，说明其工业基本完整无损。何况日本拥有一支宏大的科技队伍，以及一支熟练技术工人大军，这是旧中国根本无法比拟的。因此到新中国成立的1949年，日本实际要领先中国80年。即使是台湾和韩国，由于它们曾经成为日本的部分领土(殖民地)，整体水平也要领先中国大陆50年(谁如果不信这一点，可以去阅读著名作家萧乾在1946年写的《冷眼看台湾》一文)。而香港和新加坡作为城市，以整体水平来衡量当然要比中国大陆(大多数地区是农村)发达得多。何况它们还是英国远东殖民地的两大中心城市，英国从殖民地掠夺的大量财富都集聚到这里，所以中国大陆与它们的出发水平不同。     <br/><br/>    经过毛泽东时代的短短三十年，中国实现了从农业国到伟大工业强国的历史性跨越。中国实行的是赶超战略，即瞄准西方先进的工业水平，别人有的我们要有，别人没有的我们也要有。到毛泽东去世前夕，几乎所有西方有的中国都有了。天上有喷气式飞机，地下有汽车、火车和轮船，卫星、导弹、原子弹样样俱全。而&quot;四小龙&quot;能造什么？它们是典型的殖民地经济，只能造服装鞋帽之类。它们赶上了冷战时期的好时光，那时西方殖民地各国的反帝独立斗争风起云涌，对西方来说，只有在美英刺刀保护下的&quot;四小龙&quot;才是安全的，因此投资都集中于它们，造成了它们的短暂繁荣。但它们没有发达的制造业和核心技术，繁荣根本长不了。20世纪初期的阿根廷靠养羊也曾富得流油，但现在如何呢?   冷战结束后，&quot;四小龙&quot;的经济发展很快陷入困境，而中国却仍在高速前进，因为中国有自己的制造业，几乎什么都能够制造。而中国的工业化基础正是毛泽东为中国人民奠定的。  <br/><br/><br/>    在毛泽东时代，中国与西方强国的经济差距飞快地缩小着。美国耶鲁大学教授莫里斯 <br/>迈斯纳称毛泽东时代为&quot;世界历史上最伟大的现代化时代之一，与德国、日本和俄国等几个现代工业舞台上主要后起之秀的工业化过程中最剧烈时期相比毫不逊色。&quot;美国在20世纪70年代出版的《日本与俄国的现代化》一书中认为，新中国取得了其它任何国家都没有取得过的成就。但是近20年来却有一种流传甚广的谬论，认为1960年中国的GDP与日本相同，1980年则降为日本的1/4，到1985年更降为日本的1/5。其实这是某些经济学家的错误计算。他们是用当年中国和日本的GDP各为多少美元进行比较，而忽略了两国货币对美元汇率的变动。80年代前后，日元对美元大幅升值，使日本经济出现了虚拟膨胀；而同期人民币对美元的汇率大幅下降，使中国经济总量看上去似乎大大&quot;缩水&quot;。因此，用美元总值进行的中日经济比较，就与实际有很大的差异。事实上，正是在20世纪80年代，中国经济的实际规模已经超过日本。还应该说明的是，所谓日本在20世纪80年代后期超过苏联成为世界第二经济强国，也是日元升值使日本经济凭空膨胀给人们的错误印象。如果比较当时苏联和日本的工农业总产量，日本较苏联相距尚远。例如，苏联解体前的最高年钢产量和最高年发电量，日本至今也未能超过，而中国到90年代已经超过。今天，中国钢产量是日本的3倍，年发电量是日本的1.5倍。目前中国的钢、煤、水泥等许多主要工业产品的产量，已经超过美国居世界第一。 <br/>   <br/>    诚然，毛泽东时代的中国人民生活水平提高得并不是很快，但这是为了筹集中国工业化的资金。西方工业化的资金来自殖民掠夺(英法)、剥削黑奴(美国)、对外征战获得赔款(德日)。而象苏联和中国这样的社会主义国家，只能首先节衣缩食积累工业资金，将自己的工业发展起来，然后利用工业创造的财富享受美好生活。在毛泽东时代，中国首先建立了大量的矿山铁路，然后是钢铁厂，再以后是机械厂。当机械工业初具规模后，就可以建立各种轻纺厂、自行车厂、电视机厂等等，以改善人民的生活。但毛泽东就在中国即将从积累时代转向消费时代的时刻离开了我们，没有看到人民生活获得极大改善那一天的到来。这是他一生的遗憾。而许多不明道理的人，却将毛泽东时代看成贫穷的时代。        <br/>   <br/>    令人遗憾的是，最近一二十年来，中国的某些经济学家被四小龙的暂时发展所迷惑。在他们的鼓吹之下，中国一度采取了与四小龙相似的经济发展路线，即追求的是赚钱而不是赶超。这些年来，中国利用外资建立了许多低水平的加工工业，赚了一些钱，却没有集中力量进行艰苦的技术赶超，导致中国的技术水平与西方的差距越来越大。毛泽东时代，中国曾经取得了许多举世瞩目的科技成就；而最近一二十年来，中国取得了哪些引以为傲的技术成就呢？也许只有飞船上天了，但这是靠毛泽东给我们留下的技术底子。如果当初我们按照毛泽东&quot;中国人民有志气，有能力，一定能够在不远的将来，赶上和超过世界的先进水平&quot;这句话指引的道路走下去，中国今天已经是与美国并立甚至超过美国的现代化强国。         <br/>   <br/>    目前那些反对毛泽东的人，有些是政治立场问题，但更多的是不明真相。他们看到西方发达国家人均2-3万美元的现实，对比中国目前的人均1000美元，未免埋怨毛泽东没有让他们过上西方的富裕生活。其实这里有一个很大的误会，西方和中国的物价不一样，无论西欧、美国还是&quot;四小龙&quot;，物价都比中国高得多。由于各国的物价不同，用美元总值来比较各国的GDP就会与实际有很大的差距。如果要真正比较各国的经济实力，只能用工农业总产量来衡量，这是不受价格影响的。在工农业总产量方面，今天的中国要领先日本和所有的欧洲国家，与美国相比也绝不逊色。中国人的生活水平与美国等西方国家相比，绝不是许多人所认为的天上地下般的差距。如果这些人有幸到&quot;四小龙&quot;实地生活体会一下，就会发现&quot;四小龙&quot;的绝大多数老百姓并非他们想象的那样富得流油，日子艰难的大有人在。即使是欧美发达国家，大多数老百姓生活同样是紧巴巴的，基本上在银行没有存款。欧美国家的居民通常只生一个孩子，绝不是他们有计划生育的意识，而是难以负担两个孩子的供养和教育费用。              <br/><br/>    有些人认为毛泽东是专制独裁。他们不知道，西方民主制度的特点是一盘散沙，软弱无力。美国也承认，凡是实行了美式民主的发展中国家，至今未有能够在经济方面取得成功的。20世纪初期德国和日本工业化进展最快，它们的君主专制制度起了重要作用，因为强大的中央集权体制使它们能够将资金集中于重工业。战后，日本和&quot;四小龙&quot;在它们的高速发展时期，都不是真正的民主国家，而实际是专制国家(日本是自民党长期执政，新加坡是李光耀家族掌权，香港是殖民统治，台湾和韩国是军人独裁)。中国没有在20世纪后半期实行美式民主，是中国的大幸。可以毫不夸张地说，如果要阻止中国在21世纪成为世界首强，最好的方法就是实行欧美式民主制度。菲律宾近年光荣地实行西方式民主，选出的总统都是演员和美女。我们不难想象，如果在中国实行西方式民主，那么中国众多的小燕子迷们就会将身穿日本军旗装的赵薇抬上总统宝座。当然赵薇的军旗装事件很可能只是无心之失，但如果被扶上去是另外一位为金钱不惜匍伏在洋人胯下的女明星，由这样的人来领导伟大的中国赶超西方，简直就是天大的笑话。         <br/><br/>    那些&quot;民主斗士&quot;认为，一党执政使权力得不到遏制，无法有效地制止腐败。请问：世界上所有实行了西方民主制度的国家，可有任何一国能够做到毛泽东时代的中国那样清廉？印度和印尼这些国家实行了西方式民主制度，是否制止了腐败呢？从近年它们先后荣幸地当选全球最腐败的国家，人们不难得出答案。当然，中国是要走民主之路的，但绝不能照搬西方式民主。         <br/><br/>   毛泽东给中国带来了社会主义制度。有些人认为社会主义的大锅饭不能使人们发挥积极性。其实，西方现代企业都实行所有权与经营权分离的制度，由专门的管理层经营企业，老板只占有股份。但西方拥有一套严格的奖罚制度，谁要是搞砸了企业，他将终生没有饭碗；而中国的官员搞砸了企业，还可以易地为官。可见，中国缺乏的是有效的奖罚机制，而不是所有制的问题。那些鼓吹中国应全面实行私有制的经济学家们，都应该埋名隐姓到私企去体验一下生活，亲身尝尝老板和工头们拳脚的滋味。有过这一番体验后，相信他们中有良心的人会纷纷从右派变成左派。        <br/>   <br/>    有些人拿今天朝鲜的情况，认为毛泽东时代的经济不行。其实朝鲜是战后经济发展最快的国家之一。即使按照台湾方面的估计，20世纪80年代朝鲜的人均国民生产总值在亚洲也仅次于日本和&quot;四小龙&quot;，而高于所有其它实行资本主义制度的亚洲各国（不包括西亚石油国和作为资源富国的马来西亚）。目前朝鲜的经济困难，主要是其主要贸易对象苏联东欧集团解体和西方封锁的结果。我们可以想象一下：将韩国封锁几十年会是怎样的情形？也许不用几十年，只要几年就可以使其制度优越的神话彻底破灭。  <br/><br/>    毛泽东时代的另一大特色，是全体中国人民具有很强的凝聚力，这是中国成为现代化强国必不可少的条件。人们看看那些近代发展最快的国家如日本、德国和苏联。德国和日本由于统治集团大肆宣传本民族优越论，客观上造成德意志、大和民族具有很强的凝聚力。苏联是用共产主义理想凝聚人心，也使其各民族具有高昂的战斗力。中国在毛泽东时代，可以说是亿万军民众志成城，世界上没有任何国家敢惹。可以断言，如果毛泽东在世，给美国天大的胆子也不敢炸中国大使馆。令人遗憾的是，毛泽东逝世以后，中国某些不明道理的知识分子，大肆攻击毛泽东、共产党和社会主义制度，而推崇西方的所谓民主(他们忘却了孙中山的教训)，造成社会人心混乱。他们并不真正了解欧美和&quot;四小龙&quot;，盲目推崇西方，使中国人在一夜之间丧失了民族自豪感和凝聚力，众多的人才外流。现在许多有点钱或技术的人都想移民西方，许多有点姿色的女人也都想嫁西方人(哪怕是白发老翁)。本来香港和台湾根本不值得我们效仿，它们近年的萧条已经说明了其殖民地经济模式的失败。但在这些知识分子们的美化下，香港和台湾被许多人看成了天堂，那些没有文化、没有才干，只会吼几嗓子的港台歌星们，竟然成了内地众多少男少女倾慕的对象。在毛泽东时代，中国的少年儿童们高唱着气壮山河的革命战歌，这样有战斗力的一代没有任何国家不害怕；而现在中国的少年儿童们沉迷的是港台的靡靡之音，哈美哈日哈韩。这样，美国会把中国放在眼里吗?      <br/>   <br/>   我们不妨回望千年：唐朝在唐太宗时代，响彻天下的是雄壮的&quot;秦王破阵乐&quot;，此时的大唐积极进取，国威远播，万国来朝；而到唐玄宗时代后期，盛行天下的是淫靡的&quot;霓裳羽衣曲&quot;，此时正是&quot;渔阳鼙鼓动地来&quot;的衰落前夜。     <br/>   <br/>    有些人攻击毛泽东的大跃进和文革死了多少人。其实这种谣言任何人只要用脑袋想一想就会不攻自破。比如，海外说大跃进饿死了3000万人。要知道，当时中国只有6亿人口，如果饿死3000万人，就等于20人中饿死一个。换句话说，几乎家家都有亲戚在大跃进中饿死。如此大量的死亡数字必定会引起全国震动。人们不妨看看周围，每百家有几家在大跃进中死过人？这样就很容易知道此种说法是何等荒谬！而在旧中国，饿死人的数量是惊人的，仅1945年湖南就有500万人饿死。今天的亚非拉美广大发展中国家，每年都有1500万人饿死。以中国人口居世界五分之一计算，如果没有毛泽东，中国现在每年应有300万人饿死，这50年来应该有1亿到1.5亿人饿死。象今天的印度，死个人就象死只蚂蚁一样，印度可是拥有某些人向往的西方民主议会制度的。    <br/>   <br/>    诚然，同历史上的所有伟人一样，毛泽东也不是没有犯过错误，但他对中华民族的贡献远远大于他的过失。正是他旋转乾坤，把一个备受欺凌、人民做牛做马的黑暗旧中国，变成昂首挺胸、人民当家作主的光明新中国。从毛泽东诞生的1893年到新中国成立的1949年，仅仅在这半个多世纪里，中国死于饥饿、营养不良和缺医少药的人，就可以说数以亿计，全国人的平均寿命只有34岁。新中国的建立，彻底改变了中国广大人民的命运，使他们摆脱了原先悲惨的生活状况。众所周知，毛泽东时代为筹集工业化的资金，曾经实施工农业产品&quot;剪刀差&quot;，导致农民的生活处于比较低的水平，而且&quot;大跃进&quot;的灾难也发生在农村，但时至毛泽东逝世几十年后的今天，中国农村的众多家庭仍然悬挂着毛泽东的画像，甚至在改革开放后富裕起来的沿海地区农村也一样，没有任何人的强迫命令，完全是农民们自发的行动。农村的老一代人都经历过旧社会，他们知道在风雨如晦的旧中国，千家万户啼饥号寒，流离失所，卖儿卖女，妻离子散，是毛主席派来的亲人解放军把他们从水深火热中解救出来，从此他们过上了人人有饭吃，有衣穿，有学上，有病能够治疗，没有压迫，没有剥削，没有腐败的新生活，因此，无论这些年来某些知识分子和海外敌对势力攻击毛泽东如何&quot;专制&quot;，如何&quot;独裁&quot;，如何&quot;不懂经济&quot;，他们始终认定毛泽东是中国人民的大救星。从20世纪90年代起，在没有任何舆论引导，没有任何人发动和组织的情况下，&quot;红太阳热&quot;席卷了万里神州大地，千千万万的老工人、老农民和当年的知青们，一遍遍地唱着毛泽东的颂歌，深情地怀念这位已故的领袖。每天都有成千上万的人从天南海北，从四面八方，来到北京的毛主席纪念堂，向他们敬爱的领袖和导师表达崇高的敬意。毛泽东永远是人民心中的一座丰碑。        <br/>   <br/>    毛泽东不仅在全中国，而且在全世界都享有崇高的威望。即使在他去世几十年后的今天，中国人到非洲经常会遇到这种现象：非洲的黑人们一听说对方来自中国，立即竖起大拇指说：&quot;毛泽东！毛泽东！&quot;世界上没有任何一位其他国家的领袖能够让他们如此肃然起敬。在亚洲和拉美的许多发展中国家也有同样的现象。甚至世界各国的领袖们（包括西方发达国家的首脑）也对毛泽东十分崇敬。1972年美国总统尼克松到中国访问，他是怀着朝圣般的心情去谒见毛泽东的。从毛泽东会见尼克松的照片中人们可以看到，尼克松的神态恭敬得象个小学生在老师面前。日本首相田中角荣在私下对女儿评论各国领袖时，对超级大国苏联的首脑勃列日涅夫和柯西金十分轻蔑，而推崇毛泽东为圣人。即使在日后毛泽东被某些人妖魔化时，他们对毛泽东的看法仍然不变。在尼克松晚年建立的私人图书馆里，建造有多尊尼克松与之打过交道的世界各国领导人的塑像，其中毛泽东和周恩来的塑像最突出和显赫，而且唯有他们是雍容华贵的坐像，其他人都是站像，不难看出尼克松最崇敬的就是毛泽东和周恩来。几年前，英国前首相希思回答记者谁是他最推崇的世界政治家，第一位就是中国的毛泽东。        <br/><br/>   <br/>    由此可见，毛泽东是我们中华民族最伟大的英雄，历史将千秋万代铭记这一点。最近二十多年来，某些受西方影响的知识分子们(他们并不代表中国最广大的人民群众)恶毒攻击毛泽东，企图将中国重新拉回半殖民地的老路，使中国脱离向世界现代化强国冲刺的道路，沦为西方帝国主义的低级加工厂。他们涣散了中国的人心，削弱了中国人的斗志。他们就象苏联的索尔仁尼琴。索尔仁尼琴以反斯大林主义的小说《古拉格群岛》而著称，是反苏维埃制度最著名的斗士，但他在苏联解体后认识到自己反对斯大林和苏共是绝大错误。面对俄罗斯正沦为西方附庸的现实（即使在普京时代，俄罗斯的所谓经济复苏也是靠出卖石油和天然气等资源，与沙皇时代的俄国和当今世界的绝大多数落后国家没有什么两样），他痛苦悲哀地说：&quot;今日的俄罗斯已经彻底丧失了斯大林曾经赋予这个国家的冲劲与斗志!&quot;中国的某些知识分子们正在扮演索尔仁尼琴的角色，无论他们出于何种目的，实际上他们的所作所为，只能将中华民族重新拖向深渊。        <br/>   <br/>    中国要成为一个强盛和公正的现代化强国，必须高举毛泽东的伟大旗帜，在毛泽东思想的指引下前进！(完) <br/>]]></description>
  </item>

<item>
  <link>http://blog.zjxu.edu.cn/zyc//readblog.asp?id=19</link>
  <title><![CDATA[powerbuilder中动态改变窗口中控件的大小方法]]></title>
  <author>jxxyzyc@126.com(张玉才)</author>
  <category><![CDATA[本站原创]]></category>
  <pubDate>2008-4-25</pubDate>
  <guid>http://blog.zjxu.edu.cn/zyc//readblog.asp?id=19</guid>
  <description><![CDATA[控件随窗口改变大小方法：<br/>（1）定义instance 变量<br/>// 定义数组，记录各控件与窗口的位置、大小比例<br/>real       ir_x[]<br/>real       ir_y[]<br/>real       ir_width[]<br/>real       ir_height[] <br/><br/><br/><br/>//定义控件<br/>checkbox                     icbx_obj<br/>radiobutton                  irb_obj<br/>commandbutton                icb_obj<br/>datawindow                   idw_obj<br/>dropdownlistbox              iddlb_obj<br/>dropdownpicturelistbox   &nbsp;  iddplb_obj<br/>editmask                     iem_obj<br/>groupbox                     igb_obj<br/>HProgressBar&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ihpb_obj&nbsp;<br/>hscrollbar                   ihsb_obj<br/>HTrackBar&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ihtb_obj<br/>line                         iln_obj<br/>listbox                      ilb_obj<br/>listview                     ilv_obj<br/>multilineedit                imle_obj<br/>Oval&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  iov_obj<br/>picture                      ip_obj<br/>picturebutton                ipb_obj<br/>PictureHyperLink&nbsp;&nbsp;&nbsp;&nbsp;  iphl_obj<br/>picturelistbox               iplb_obj<br/>singlelineedit               isle_obj<br/>Rectangle&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ir_obj<br/>RoundRectangle&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  irr_obj<br/>tab                          it_obj<br/>treeview                     itv_obj<br/>userobject                   iuo_obj<br/>vscrollbar                   ivsb_obj<br/>graph                        igr_obj<br/>olecontrol                   iole_obj<br/>richtextedit                 irte_obj<br/>statictext                   ist_obj<br/>StaticHyperLink&nbsp;&nbsp;&nbsp;&nbsp;  ishl_obj<br/>VProgressBar&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ivpb_obj<br/>VTrackBar&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ivtb_obj<br/><br/><br/>（2）在open事件：<br/>Integer li_count<br/>Integer li_i<br/>Long &nbsp;  ll_width<br/>LOng    ll_height<br/><br/><br/><br/><br/>ll_width = this.workspacewidth()<br/>ll_height = this.workspaceheight()<br/><br/><br/>// 窗口内控件数<br/>li_count = upperbound(this.control[])<br/><br/><br/>// 循环记录各控件大小与窗口大小的比例<br/>FOR li_i = 1 TO li_count<br/>&nbsp;<br/>&nbsp;CHOOSE CASE this.control[li_i].typeof()<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;CASE checkbox!<br/>&nbsp;&nbsp;&nbsp;icbx_obj = this.control[li_i]<br/>&nbsp;&nbsp;&nbsp;ir_x[li_i] = round(icbx_obj.x / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_y[li_i] = round(icbx_obj.y / ll_height, 3)<br/>&nbsp;&nbsp;&nbsp;ir_width[li_i] = round(icbx_obj.width / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_height[li_i] = round(icbx_obj.height / ll_height, 3)<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;CASE radiobutton!<br/>&nbsp;&nbsp;&nbsp;irb_obj = this.control[li_i]<br/>&nbsp;&nbsp;&nbsp;ir_x[li_i] = round(irb_obj.x / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_y[li_i] = round(irb_obj.y / ll_height, 3)<br/>&nbsp;&nbsp;&nbsp;ir_width[li_i] = round(irb_obj.width / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_height[li_i] = round(irb_obj.height / ll_height, 3)<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;CASE commandbutton!<br/>&nbsp;&nbsp;&nbsp;icb_obj = this.control[li_i]<br/>&nbsp;&nbsp;&nbsp;ir_x[li_i] = round(icb_obj.x / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_y[li_i] = round(icb_obj.y / ll_height, 3)<br/>&nbsp;&nbsp;&nbsp;ir_width[li_i] = round(icb_obj.width / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_height[li_i] = round(icb_obj.height / ll_height, 3)<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;CASE picture!<br/>&nbsp;&nbsp;&nbsp;ip_obj = this.control[li_i]<br/>&nbsp;&nbsp;&nbsp;ir_x[li_i] = round(ip_obj.x / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_y[li_i] = round(ip_obj.y / ll_height, 3)<br/>&nbsp;&nbsp;&nbsp;ir_width[li_i] = round(ip_obj.width / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_height[li_i] = round(ip_obj.height / ll_height, 3)<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;CASE datawindow!<br/>&nbsp;&nbsp;&nbsp;idw_obj = this.control[li_i]<br/>&nbsp;&nbsp;&nbsp;ir_x[li_i] = round(idw_obj.x / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_y[li_i] = round(idw_obj.y / ll_height, 3)<br/>&nbsp;&nbsp;&nbsp;ir_width[li_i] = round(idw_obj.width / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_height[li_i] = round(idw_obj.height / ll_height, 3)<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;CASE dropdownlistbox!<br/>&nbsp;&nbsp;&nbsp;iddlb_obj = this.control[li_i]<br/>&nbsp;&nbsp;&nbsp;ir_x[li_i] = round(iddlb_obj.x / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_y[li_i] = round(iddlb_obj.y / ll_height, 3)<br/>&nbsp;&nbsp;&nbsp;ir_width[li_i] = round(iddlb_obj.width / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_height[li_i] = round(iddlb_obj.height / ll_height, 3)<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;CASE dropdownpicturelistbox!<br/>&nbsp;&nbsp;&nbsp;iddplb_obj = this.control[li_i]<br/>&nbsp;&nbsp;&nbsp;ir_x[li_i] = round(iddplb_obj.x / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_y[li_i] = round(iddplb_obj.y / ll_height, 3)<br/>&nbsp;&nbsp;&nbsp;ir_width[li_i] = round(iddplb_obj.width / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_height[li_i] = round(iddplb_obj.height / ll_height, 3)<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;CASE listbox!<br/>&nbsp;&nbsp;&nbsp;ilb_obj = this.control[li_i]<br/>&nbsp;&nbsp;&nbsp;ir_x[li_i] = round(ilb_obj.x / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_y[li_i] = round(ilb_obj.y / ll_height, 3)<br/>&nbsp;&nbsp;&nbsp;ir_width[li_i] = round(ilb_obj.width / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_height[li_i] = round(ilb_obj.height / ll_height, 3)<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;CASE multilineedit!&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;imle_obj = this.control[li_i]<br/>&nbsp;&nbsp;&nbsp;ir_x[li_i] = round(imle_obj.x / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_y[li_i] = round(imle_obj.y / ll_height, 3)<br/>&nbsp;&nbsp;&nbsp;ir_width[li_i] = round(imle_obj.width / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_height[li_i] = round(imle_obj.height / ll_height, 3)<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;CASE editmask!<br/>&nbsp;&nbsp;&nbsp;iem_obj = this.control[li_i]<br/>&nbsp;&nbsp;&nbsp;ir_x[li_i] = round(iem_obj.x / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_y[li_i] = round(iem_obj.y / ll_height, 3)<br/>&nbsp;&nbsp;&nbsp;ir_width[li_i] = round(iem_obj.width / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_height[li_i] = round(iem_obj.height / ll_height, 3)<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;CASE tab!<br/>&nbsp;&nbsp;&nbsp;it_obj = this.control[li_i]<br/>&nbsp;&nbsp;&nbsp;ir_x[li_i] = round(it_obj.x / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_y[li_i] = round(it_obj.y / ll_height, 3)<br/>&nbsp;&nbsp;&nbsp;ir_width[li_i] = round(it_obj.width / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_height[li_i] = round(it_obj.height / ll_height, 3)<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;CASE groupbox!<br/>&nbsp;&nbsp;&nbsp;igb_obj = this.control[li_i]<br/>&nbsp;&nbsp;&nbsp;ir_x[li_i] = round(igb_obj.x / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_y[li_i] = round(igb_obj.y / ll_height, 3)<br/>&nbsp;&nbsp;&nbsp;ir_width[li_i] = round(igb_obj.width / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_height[li_i] = round(igb_obj.height / ll_height, 3)<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;CASE hscrollbar!<br/>&nbsp;&nbsp;&nbsp;ihsb_obj = this.control[li_i]<br/>&nbsp;&nbsp;&nbsp;ir_x[li_i] = round(ihsb_obj.x / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_y[li_i] = round(ihsb_obj.y / ll_height, 3)<br/>&nbsp;&nbsp;&nbsp;ir_width[li_i] = round(ihsb_obj.width / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_height[li_i] = round(ihsb_obj.height / ll_height, 3)<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;CASE listview!<br/>&nbsp;&nbsp;&nbsp;ilv_obj = this.control[li_i]<br/>&nbsp;&nbsp;&nbsp;ir_x[li_i] = round(ilv_obj.x / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_y[li_i] = round(ilv_obj.y / ll_height, 3)<br/>&nbsp;&nbsp;&nbsp;ir_width[li_i] = round(ilv_obj.width / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_height[li_i] = round(ilv_obj.height / ll_height, 3)<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;CASE picturebutton!<br/>&nbsp;&nbsp;&nbsp;ipb_obj = this.control[li_i]<br/>&nbsp;&nbsp;&nbsp;ir_x[li_i] = round(ipb_obj.x / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_y[li_i] = round(ipb_obj.y / ll_height, 3)<br/>&nbsp;&nbsp;&nbsp;ir_width[li_i] = round(ipb_obj.width / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_height[li_i] = round(ipb_obj.height / ll_height, 3)<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;CASE picturelistbox!<br/>&nbsp;&nbsp;&nbsp;iplb_obj = this.control[li_i]<br/>&nbsp;&nbsp;&nbsp;ir_x[li_i] = round(iplb_obj.x / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_y[li_i] = round(iplb_obj.y / ll_height, 3)<br/>&nbsp;&nbsp;&nbsp;ir_width[li_i] = round(iplb_obj.width / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_height[li_i] = round(iplb_obj.height / ll_height, 3)<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;CASE singlelineedit!<br/>&nbsp;&nbsp;&nbsp;isle_obj = this.control[li_i]<br/>&nbsp;&nbsp;&nbsp;ir_x[li_i] = round(isle_obj.x / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_y[li_i] = round(isle_obj.y / ll_height, 3)<br/>&nbsp;&nbsp;&nbsp;ir_width[li_i] = round(isle_obj.width / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_height[li_i] = round(isle_obj.height / ll_height, 3)<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;CASE treeview!<br/>&nbsp;&nbsp;&nbsp;itv_obj = this.control[li_i]<br/>&nbsp;&nbsp;&nbsp;ir_x[li_i] = round(itv_obj.x / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_y[li_i] = round(itv_obj.y / ll_height, 3)<br/>&nbsp;&nbsp;&nbsp;ir_width[li_i] = round(itv_obj.width / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_height[li_i] = round(itv_obj.height / ll_height, 3)<br/>&nbsp;&nbsp;CASE userobject!<br/>&nbsp;&nbsp;&nbsp;iuo_obj = this.control[li_i]<br/>&nbsp;&nbsp;&nbsp;ir_x[li_i] = round(iuo_obj.x / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_y[li_i] = round(iuo_obj.y / ll_height, 3)<br/>&nbsp;&nbsp;&nbsp;ir_width[li_i] = round(iuo_obj.width / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_height[li_i] = round(iuo_obj.height / ll_height, 3)<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;CASE vscrollbar!<br/>&nbsp;&nbsp;&nbsp;ivsb_obj = this.control[li_i]<br/>&nbsp;&nbsp;&nbsp;ir_x[li_i] = round(ivsb_obj.x / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_y[li_i] = round(ivsb_obj.y / ll_height, 3)<br/>&nbsp;&nbsp;&nbsp;ir_width[li_i] = round(ivsb_obj.width / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_height[li_i] = round(ivsb_obj.height / ll_height, 3)<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;CASE graph!<br/>&nbsp;&nbsp;&nbsp;igr_obj = this.control[li_i]<br/>&nbsp;&nbsp;&nbsp;ir_x[li_i] = round(igr_obj.x / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_y[li_i] = round(igr_obj.y / ll_height, 3)<br/>&nbsp;&nbsp;&nbsp;ir_width[li_i] = round(igr_obj.width / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_height[li_i] = round(igr_obj.height / ll_height, 3)<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;CASE olecontrol!<br/>&nbsp;&nbsp;&nbsp;iole_obj = this.control[li_i]<br/>&nbsp;&nbsp;&nbsp;ir_x[li_i] = round(iole_obj.x / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_y[li_i] = round(iole_obj.y / ll_height, 3)<br/>&nbsp;&nbsp;&nbsp;ir_width[li_i] = round(iole_obj.width / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_height[li_i] = round(iole_obj.height / ll_height, 3)<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;CASE richtextedit!<br/>&nbsp;&nbsp;&nbsp;irte_obj = this.control[li_i]<br/>&nbsp;&nbsp;&nbsp;ir_x[li_i] = round(irte_obj.x / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_y[li_i] = round(irte_obj.y / ll_height, 3)<br/>&nbsp;&nbsp;&nbsp;ir_width[li_i] = round(irte_obj.width / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_height[li_i] = round(irte_obj.height / ll_height, 3)<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;CASE statictext!<br/>&nbsp;&nbsp;&nbsp;ist_obj = this.control[li_i]<br/>&nbsp;&nbsp;&nbsp;ir_x[li_i] = round(ist_obj.x / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_y[li_i] = round(ist_obj.y / ll_height, 3)<br/>&nbsp;&nbsp;&nbsp;ir_width[li_i] = round(ist_obj.width / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_height[li_i] = round(ist_obj.height / ll_height, 3)<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;CASE line!<br/>&nbsp;&nbsp;&nbsp;iln_obj = this.control[li_i]<br/>&nbsp;&nbsp;&nbsp;ir_x[li_i] = round(iln_obj.beginx / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_y[li_i] = round(iln_obj.beginy / ll_height, 3)<br/>&nbsp;&nbsp;&nbsp;ir_width[li_i] = round(iln_obj.endx / ll_width, 3)<br/>&nbsp;&nbsp;&nbsp;ir_height[li_i] = round(iln_obj.endy / ll_height, 3)<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;case HProgressBar!<br/>&nbsp;&nbsp;&nbsp;ihpb_obj = This.control[li_i]<br/>&nbsp;&nbsp;&nbsp;<br/>（3）在窗口resize事件：<br/>Integer li_count<br/>Integer li_i<br/><br/><br/><br/>This.Setredraw(False)<br/><br/>//控件数<br/>li_count = upperbound(This.Control[])<br/><br/>// 重新按照窗口大小来设定各控件的位置及大小<br/>FOR li_i = 1 TO li_count<br/>&nbsp;<br/>&nbsp;Choose Case This.Control[li_i].TypeOf()<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;Case checkbox!<br/>&nbsp;&nbsp;&nbsp;icbx_obj = This.control[li_i]<br/>&nbsp;&nbsp;&nbsp;icbx_obj.x = newwidth * ir_x[li_i]<br/>&nbsp;&nbsp;&nbsp;icbx_obj.y = newheight * ir_y[li_i]<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;Case radiobutton!<br/>&nbsp;&nbsp;&nbsp;irb_obj = This.control[li_i]<br/>&nbsp;&nbsp;&nbsp;irb_obj.x = newwidth * ir_x[li_i]<br/>&nbsp;&nbsp;&nbsp;irb_obj.y = newheight * ir_y[li_i]<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;Case commandbutton!<br/>&nbsp;&nbsp;&nbsp;icb_obj = This.control[li_i]<br/>&nbsp;&nbsp;&nbsp;icb_obj.x = newwidth * ir_x[li_i]<br/>&nbsp;&nbsp;&nbsp;icb_obj.y = newheight * ir_y[li_i]<br/>&nbsp;&nbsp;&nbsp;icb_obj.width = newwidth * ir_width[li_i]<br/>&nbsp;&nbsp;&nbsp;icb_obj.height = newheight * ir_height[li_i]<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;Case picture!<br/>&nbsp;&nbsp;&nbsp;ip_obj = This.control[li_i]<br/>&nbsp;&nbsp;&nbsp;ip_obj.x = newwidth * ir_x[li_i]<br/>&nbsp;&nbsp;&nbsp;ip_obj.y = newheight * ir_y[li_i]<br/>&nbsp;&nbsp;&nbsp;ip_obj.width = newwidth * ir_width[li_i]<br/>&nbsp;&nbsp;&nbsp;ip_obj.height = newheight * ir_height[li_i]<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;Case datawindow!<br/>&nbsp;&nbsp;&nbsp;idw_obj = This.control[li_i]<br/>&nbsp;&nbsp;&nbsp;idw_obj.x = newwidth * ir_x[li_i]<br/>&nbsp;&nbsp;&nbsp;idw_obj.y = newheight * ir_y[li_i]<br/>&nbsp;&nbsp;&nbsp;idw_obj.width = newwidth * ir_width[li_i]<br/>&nbsp;&nbsp;&nbsp;idw_obj.height = newheight * ir_height[li_i]<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;Case dropdownlistbox!<br/>&nbsp;&nbsp;&nbsp;iddlb_obj = This.control[li_i]<br/>&nbsp;&nbsp;&nbsp;iddlb_obj.x = newwidth * ir_x[li_i]<br/>&nbsp;&nbsp;&nbsp;iddlb_obj.y = newheight * ir_y[li_i]<br/>&nbsp;&nbsp;&nbsp;iddlb_obj.width = newwidth * ir_width[li_i]<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;Case dropdownpicturelistbox!<br/>&nbsp;&nbsp;&nbsp;iddplb_obj = This.control[li_i]<br/>&nbsp;&nbsp;&nbsp;iddplb_obj.x = newwidth * ir_x[li_i]<br/>&nbsp;&nbsp;&nbsp;iddplb_obj.y = newheight * ir_y[li_i]<br/>&nbsp;&nbsp;&nbsp;iddplb_obj.width = newwidth * ir_width[li_i]<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;Case listbox!<br/>&nbsp;&nbsp;&nbsp;ilb_obj = This.control[li_i]<br/>&nbsp;&nbsp;&nbsp;ilb_obj.x = newwidth * ir_x[li_i]<br/>&nbsp;&nbsp;&nbsp;ilb_obj.y = newheight * ir_y[li_i]<br/>&nbsp;&nbsp;&nbsp;ilb_obj.width = newwidth * ir_width[li_i]<br/>&nbsp;&nbsp;&nbsp;ilb_obj.height = newheight * ir_height[li_i]&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;Case multilineedit!<br/>&nbsp;&nbsp;&nbsp;imle_obj = This.control[li_i]<br/>&nbsp;&nbsp;&nbsp;imle_obj.x = newwidth * ir_x[li_i]<br/>&nbsp;&nbsp;&nbsp;imle_obj.y = newheight * ir_y[li_i]<br/>&nbsp;&nbsp;&nbsp;imle_obj.width = newwidth * ir_width[li_i]<br/>&nbsp;&nbsp;&nbsp;imle_obj.height = newheight * ir_height[li_i]&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;Case editmask!<br/>&nbsp;&nbsp;&nbsp;iem_obj = This.control[li_i]<br/>&nbsp;&nbsp;&nbsp;iem_obj.x = newwidth * ir_x[li_i]<br/>&nbsp;&nbsp;&nbsp;iem_obj.y = newheight * ir_y[li_i]<br/>&nbsp;&nbsp;&nbsp;iem_obj.width = newwidth * ir_width[li_i]<br/>&nbsp;&nbsp;&nbsp;iem_obj.height = newheight * ir_height[li_i]&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;Case tab!<br/>&nbsp;&nbsp;&nbsp;it_obj = This.control[li_i]<br/>&nbsp;&nbsp;&nbsp;it_obj.x = newwidth * ir_x[li_i]<br/>&nbsp;&nbsp;&nbsp;it_obj.y = newheight * ir_y[li_i]<br/>&nbsp;&nbsp;&nbsp;it_obj.width = newwidth * ir_width[li_i]<br/>&nbsp;&nbsp;&nbsp;it_obj.height = newheight * ir_height[li_i]&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;Case groupbox!<br/>&nbsp;&nbsp;&nbsp;igb_obj = This.control[li_i]<br/>&nbsp;&nbsp;&nbsp;igb_obj.x = newwidth * ir_x[li_i]<br/>&nbsp;&nbsp;&nbsp;igb_obj.y = newheight * ir_y[li_i]<br/>&nbsp;&nbsp;&nbsp;igb_obj.width = newwidth * ir_width[li_i]<br/>&nbsp;&nbsp;&nbsp;igb_obj.height = newheight * ir_height[li_i]&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;Case hscrollbar!<br/>&nbsp;&nbsp;&nbsp;ihsb_obj = This.control[li_i]<br/>&nbsp;&nbsp;&nbsp;ihsb_obj.x = newwidth * ir_x[li_i]<br/>&nbsp;&nbsp;&nbsp;ihsb_obj.y = newheight * ir_y[li_i]<br/>&nbsp;&nbsp;&nbsp;ihsb_obj.width = newwidth * ir_width[li_i]<br/>&nbsp;&nbsp;&nbsp;ihsb_obj.height = newheight * ir_height[li_i]&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;Case picturebutton!<br/>&nbsp;&nbsp;&nbsp;ipb_obj = This.control[li_i]<br/>&nbsp;&nbsp;&nbsp;ipb_obj.x = newwidth * ir_x[li_i]<br/>&nbsp;&nbsp;&nbsp;ipb_obj.y = newheight * ir_y[li_i]<br/>&nbsp;&nbsp;&nbsp;ipb_obj.width = newwidth * ir_width[li_i]<br/>&nbsp;&nbsp;&nbsp;ipb_obj.height = newheight * ir_height[li_i]&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;Case listview!<br/>&nbsp;&nbsp;&nbsp;ilv_obj = This.control[li_i]<br/>&nbsp;&nbsp;&nbsp;ilv_obj.x = newwidth * ir_x[li_i]<br/>&nbsp;&nbsp;&nbsp;ilv_obj.y = newheight * ir_y[li_i]<br/>&nbsp;&nbsp;&nbsp;ilv_obj.width = newwidth * ir_width[li_i]<br/>&nbsp;&nbsp;&nbsp;ilv_obj.height = newheight * ir_height[li_i]&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;Case picturelistbox!<br/>&nbsp;&nbsp;&nbsp;iplb_obj = This.control[li_i]<br/>&nbsp;&nbsp;&nbsp;iplb_obj.x = newwidth * ir_x[li_i]<br/>&nbsp;&nbsp;&nbsp;iplb_obj.y = newheight * ir_y[li_i]<br/>&nbsp;&nbsp;&nbsp;iplb_obj.width = newwidth * ir_width[li_i]<br/>&nbsp;&nbsp;&nbsp;iplb_obj.height = newheight * ir_height[li_i]&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;Case singlelineedit!<br/>&nbsp;&nbsp;&nbsp;isle_obj = This.control[li_i]<br/>&nbsp;&nbsp;&nbsp;isle_obj.x = newwidth * ir_x[li_i]<br/>&nbsp;&nbsp;&nbsp;isle_obj.y = newheight * ir_y[li_i]<br/>&nbsp;&nbsp;&nbsp;isle_obj.width = newwidth * ir_width[li_i]<br/>&nbsp;&nbsp;&nbsp;isle_obj.height = newheight * ir_height[li_i]&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;Case treeview!<br/>&nbsp;&nbsp;&nbsp;itv_obj = This.control[li_i]<br/>&nbsp;&nbsp;&nbsp;itv_obj.x = newwidth * ir_x[li_i]<br/>&nbsp;&nbsp;&nbsp;itv_obj.y = newheight * ir_y[li_i]<br/>&nbsp;&nbsp;&nbsp;itv_obj.width = newwidth * ir_width[li_i]<br/>&nbsp;&nbsp;&nbsp;itv_obj.height = newheight * ir_height[li_i]&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;Case userobject!<br/>&nbsp;&nbsp;&nbsp;iuo_obj = This.control[li_i]<br/>&nbsp;&nbsp;&nbsp;iuo_obj.x = newwidth * ir_x[li_i]<br/>&nbsp;&nbsp;&nbsp;iuo_obj.y = newheight * ir_y[li_i]<br/>&nbsp;&nbsp;&nbsp;iuo_obj.width = newwidth * ir_width[li_i]<br/>&nbsp;&nbsp;&nbsp;iuo_obj.height = newheight * ir_height[li_i]&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;Case vscrollbar!<br/>&nbsp;&nbsp;&nbsp;ivsb_obj = This.control[li_i]<br/>&nbsp;&nbsp;&nbsp;ivsb_obj.x = newwidth * ir_x[li_i]<br/>&nbsp;&nbsp;&nbsp;ivsb_obj.y = newheight * ir_y[li_i]<br/>&nbsp;&nbsp;&nbsp;ivsb_obj.width = newwidth * ir_width[li_i]<br/>&nbsp;&nbsp;&nbsp;ivsb_obj.height = newheight * ir_height[li_i]&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;Case graph!<br/>&nbsp;&nbsp;&nbsp;igr_obj = This.control[li_i]<br/>&nbsp;&nbsp;&nbsp;igr_obj.x = newwidth * ir_x[li_i]<br/>&nbsp;&nbsp;&nbsp;igr_obj.y = newheight * ir_y[li_i]<br/>&nbsp;&nbsp;&nbsp;igr_obj.width = newwidth * ir_width[li_i]<br/>&nbsp;&nbsp;&nbsp;igr_obj.height = newheight * ir_height[li_i]&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;Case olecontrol!<br/>&nbsp;&nbsp;&nbsp;iole_obj = This.control[li_i]<br/>&nbsp;&nbsp;&nbsp;iole_obj.x = newwidth * ir_x[li_i]<br/>&nbsp;&nbsp;&nbsp;iole_obj.y = newheight * ir_y[li_i]<br/>&nbsp;&nbsp;&nbsp;iole_obj.width = newwidth * ir_width[li_i]<br/>&nbsp;&nbsp;&nbsp;iole_obj.height = newheight * ir_height[li_i]&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;Case richtextedit!<br/>&nbsp;&nbsp;&nbsp;irte_obj = This.control[li_i]<br/>&nbsp;&nbsp;&nbsp;irte_obj.x = newwidth * ir_x[li_i]<br/>&nbsp;&nbsp;&nbsp;irte_obj.y = newheight * ir_y[li_i]<br/>&nbsp;&nbsp;&nbsp;irte_obj.width = newwidth * ir_width[li_i]<br/>&nbsp;&nbsp;&nbsp;irte_obj.height = newheight * ir_height[li_i]&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;Case statictext!<br/>&nbsp;&nbsp;&nbsp;ist_obj = This.control[li_i]<br/>&nbsp;&nbsp;&nbsp;ist_obj.x = newwidth * ir_x[li_i]<br/>&nbsp;&nbsp;&nbsp;ist_obj.y = newheight * ir_y[li_i]<br/>&nbsp;&nbsp;&nbsp;ist_obj.width = newwidth * ir_width[li_i]<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;Case line!<br/>&nbsp;&nbsp;&nbsp;iln_obj = This.control[li_i]<br/>&nbsp;&nbsp;&nbsp;iln_obj.beginx = newwidth * ir_x[li_i]<br/>&nbsp;&nbsp;&nbsp;iln_obj.beginy = newheight * ir_y[li_i]<br/>&nbsp;&nbsp;&nbsp;iln_obj.endx = newwidth * ir_width[li_i]<br/>&nbsp;&nbsp;&nbsp;iln_obj.endy = newheight * ir_height[li_i]&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;case HProgressBar!<br/>&nbsp;&nbsp;&nbsp;ihpb_obj = This.control[li_i]<br/>&nbsp;&nbsp;&nbsp;ihpb_obj.x = newwidth * ir_x[li_i]<br/>&nbsp;&nbsp;&nbsp;ihpb_obj.y = newheight * ir_y[li_i]<br/>&nbsp;&nbsp;&nbsp;ihpb_obj.width = newwidth * ir_width[li_i]<br/>&nbsp;&nbsp;&nbsp;ihpb_obj.height = newheight * ir_height[li_i]&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;case HTrackBar!&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;ihtb_obj = This.control[li_i]<br/>&nbsp;&nbsp;&nbsp;ihtb_obj.x = newwidth * ir_x[li_i]<br/>&nbsp;&nbsp;&nbsp;ihtb_obj.y = newheight * ir_y[li_i]<br/>&nbsp;&nbsp;&nbsp;ihtb_obj.width = newwidth * ir_width[li_i]<br/>&nbsp;&nbsp;&nbsp;ihtb_obj.height = newheight * ir_height[li_i]&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;  <br/>&nbsp;&nbsp;case Oval!&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;iov_obj = This.control[li_i]<br/>&nbsp;&nbsp;&nbsp;iov_obj.x = newwidth * ir_x[li_i]<br/>&nbsp;&nbsp;&nbsp;iov_obj.y = newheight * ir_y[li_i]<br/>&nbsp;&nbsp;&nbsp;iov_obj.width = newwidth * ir_width[li_i]<br/>&nbsp;&nbsp;&nbsp;iov_obj.height = newheight * ir_height[li_i]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;  <br/>&nbsp;&nbsp;case PictureHyperLink!&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;iphl_obj = This.control[li_i]<br/>&nbsp;&nbsp;&nbsp;iphl_obj.x = newwidth * ir_x[li_i]<br/>&nbsp;&nbsp;&nbsp;iphl_obj.y = newheight * ir_y[li_i]<br/>&nbsp;&nbsp;&nbsp;iphl_obj.width = newwidth * ir_width[li_i]<br/>&nbsp;&nbsp;&nbsp;iphl_obj.height = newheight * ir_height[li_i]&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;  <br/>&nbsp;&nbsp;case Rectangle!<br/>&nbsp;&nbsp;&nbsp;ir_obj = This.control[li_i]<br/>&nbsp;&nbsp;&nbsp;ir_obj.x = newwidth * ir_x[li_i]<br/>&nbsp;&nbsp;&nbsp;ir_obj.y = newheight * ir_y[li_i]<br/>&nbsp;&nbsp;&nbsp;ir_obj.width = newwidth * ir_width[li_i]<br/>&nbsp;&nbsp;&nbsp;ir_obj.height = newheight * ir_height[li_i]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;  <br/>&nbsp;&nbsp;case RoundRectangle!&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;irr_obj = This.control[li_i]<br/>&nbsp;&nbsp;&nbsp;irr_obj.x = newwidth * ir_x[li_i]<br/>&nbsp;&nbsp;&nbsp;irr_obj.y = newheight * ir_y[li_i]<br/>&nbsp;&nbsp;&nbsp;irr_obj.width = newwidth * ir_width[li_i]<br/>&nbsp;&nbsp;&nbsp;irr_obj.height = newheight * ir_height[li_i]&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;case vscrollbar!&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;ivsb_obj = This.contro]]></description>
  </item>

<item>
  <link>http://blog.zjxu.edu.cn/zyc//readblog.asp?id=18</link>
  <title><![CDATA[PowerBuilder与.NET]]></title>
  <author>jxxyzyc@126.com(张玉才)</author>
  <category><![CDATA[本站原创]]></category>
  <pubDate>2008-4-22</pubDate>
  <guid>http://blog.zjxu.edu.cn/zyc//readblog.asp?id=18</guid>
  <description><![CDATA[PowerBuilder与.NET<br/>最近，很多PowerBuilder®客户都提出了是应该继续使用PowerBuilder还是应该转为使用.NET的问题。有时他们直接向Sybase的员工提出这一问题，有时他们的疑问是通过分析人士逐渐为我们所了解。本白皮书的目的是要表明，其实这不成其为问题，因为PowerBuilder和.NET之间不是一种互相排斥的关系。本白皮书将让您对继续使用PowerBuilder充满信心和并为自己的选择感到安心。 <br/>PowerBuilder和. NET不是对立关系 <br/>PowerBuilder是一种集成开发环境（IDE），.NET是一种平台。当有人问是应该继续使用PowerBuilder还是应该转为使用.NET时，他们实际上是在问是否有必要考虑用Visual Studio .NET代替PowerBuilder来进行新的开发。许多人将Visual Studio .NET和.NET等同视之。这是可以理解的，因为Visual Studio工具和.NET平台都属于微软公司。此外，Visual Studio是最常用的.NET开发工具，有80%的.NET开发是利用该产品来进行的。那么，为什么不应该把这本白皮书丢到一边，而马上使用Visual Studio .NET呢？ <br/>因为您是一名PowerBuilder开发人员，而PowerBuilder是PowerBuilder开发人员开发.NET的最简便、最经济高效的途径。它是您明智的业务决策。只需投入最少的时间和资金，它就可以把您和您的应用带到未来。它让您能够直接推动经济收益的增长。 <br/>您可能还记得第一次使用PowerBuilder时的情景。您可能是在v1.0a的时候开始使用，也可能是在我们向v5.0中添加PFC的时候，还有可能是到最近的v9.0或10.5才开始使用PowerBuilder。不论是哪个版本，您都将永远记得开发的第一个应用。它速度快，功能强大。它让您感觉极其良好！对于您这样的，对自己充满信心的资深3GL开发人员，选择PowerBuilder是因为它更易于使用。您只需花三分钟的时间，就可以用PowerBuilder建一个窗口，而不是花三个月的时间用C/C＋＋建一个窗口。它为您节约了时间，而节约时间就是节约成本。 <br/>PowerBuilder还是曾经的PowerBuilder。它依然可以提供很久以前曾经对您有无限吸引力的无可匹敌的效率。它依然在构建您所需要构建的那些应用。现在，随着它所在的Windows平台的不断发展，它也带领您一同向前发展。 <br/>.NET什么是？.NET可以做些什么？ <br/>.NET不仅仅是一种操作系统。.NET Framework包含丰富的服务和类，可简化您的开发。它使开发人员能够利用自己选择的工作语言提高开发效率，使开发人员能够制作独立于编程语言的程序集（assemblies），并且这些程序集可由使用任何其他.NET语言的.NET开发人员扩展或继承。这一点非常重要，因为它可使开发人员集中精力解决紧急问题，而不需要掌握新的语言。 <br/>不必问.NET可以做些什么，只需问PowerBuilder如何使.NET更加简便 <br/>那么，PowerBuilder的优势体现在哪里？PowerBuilder可简化.NET开发。开发人员一直选择PowerBuilder，因为它使开发更加简便。不论是在生产环境中大量的提取数据，还是构建复杂的分布式应用，或是运行后端应用，PowerBuilder都可让您利用内置技术来满足管理人员及IT部门的要求，同时迅速完成任务。PowerBuilder对.NET的支持同样如此。 <br/>PowerBuilder一直在分阶段实施对.NET的支持。2002年，我们发布了分作四个阶段的.NET支持计划，目前的11.0版本实现了该计划的第三阶段。这一版本使您能够将现有的应用部署为ASP .NET Webform、Smart Client、Winform以及传统的Win32客户端/服务器应用。此外，它还使您能够直接从您的PowerBuilder代码调用.NET assemblies上的方法。您还可将您的非可视化对象（NVO）部署为.NET Web Services和.NET assemblies，而且这些程序集可由您的企业中的其他.NET开发人员使用。使用不显示代码（Code-off）功能，看谁能够以最快的速度建立可重用的业务逻辑！PowerBuilder应用还可使用您同事在Visual Studio .NET中内置的程序集，从而能够使您减轻工作量。这些都证明了PowerBuilder对.NET的价值。 <br/>现在，PowerBuilder开发人员可利用其现有应用，并通过将其快速部署到.NET使其扩展到将来。更振奋人心的是，开发人员可利用WPF（Windows Presentation Foundation）、WF（Windows Workflow Foundation）、WCS（Windows Card Space）和WCF（Windows Communication Foundation）中包含的.NET的丰富组件。由此，应用开发人员只须利用.NET Framework中的功能，集中精力构建强健的应用以及插件系统级功能，例如安全和数字签名功能。 <br/>PowerBuilder的未来版本将使这一进程更加简便。除了部署之外，我们将重点简化对.NET进行的开发。只要您愿意，您构建的应用将部署为可管理代码。我们将简化您与.NET Framework互操作的方式，使之在很大程度上如同我们在PocketBuilder （PocketBuilder是我们针对Windows Mobile的开发工具）上的做法，即提取PowerBuilder开发人员最常用的服务和类。此外，我们将使用来自WPF/E的丰富的用户界面（UI）功能，它最近重命名为Silverlight，使您可轻松构建赏心悦目且易于导航的应用。随着我们继续在PowerBuilder中支持.NET 3.0及更高版本，开发人员将能够比企业中使用其他工具的开发人员更加快捷简便地交付新应用或增强功能，这都证明了PowerBuilder的RAD具备强大的功能。我们确保您能够使用您的管理人员和IT部门所要求采用的技术，而无需改变您的工具或者掌握更多的技能。一切都如同往常一样。 <br/>为什么PowerBuilder对.NET的支持如此鲜为人知？ <br/>我们一直在向客户讲述关于我们的.NET的五年发展计划，并且我们一直在逐阶段实现我们的计划。尽管我们在不断赢得新的用户，但我们的重点不是整个.NET市场，而是支持PowerBuilder社区中的开发者。我们认为这是一件好事情。微软拥有.NET市场的绝大部分，但是我们拥有微软之外的最大份额。这使我们能够致力于提供最佳功能——从而确保简化PowerBuilder开发人员的.NET开发。我们利用微软已有的工作成果，使.NET技术更加便于您使用。此外，我们还不断加强和扩展我们自己的专利技术——DataWindow，无论是用于复杂的数据访问、数据验证，还是将您自己的复杂业务逻辑规则应用于数据展现，都不会影响它的易用性。并且，我们继续实现您提出的更高要求，更新IDE，并更新我们对其他技术和数据库的支持。 <br/>我们还有许多工作要做，因为我们所做的不仅仅是.NET方面的。PowerBuilder作为领先的4GL RAD工具，因其开放性而赢得了巨大的声望。今天，开放性超越了数据库范畴。PowerBuilder NOV现在可以像EJB一样部署到第三方J2EE应用服务器上。Data Windows可在使用PocketBuilder的移动应用或者使用Sybase WorkSpace的Eclipse中重复使用。我们已经利用PowerBuilder技术为Visual Studio.NET环境创建了插件——DataWindow .NET。 <br/>PowerBuilder—— 一如既往 <br/>PowerBuilder将继续向前发展，支持新兴技术并汲取它们的精华，以便您更容易地使用这些技术。同时，PowerBuilder还必须始终立足于自己的根本。有数万使用PowerBuilder开发的关键业务应用，正运行在全球各地的银行、高等院校、保险公司、各政府机构、商业航空公司、石油企业、纽约证券交易所、零售业和制造业企业等各种机构中。有着各种不同需求的用户都可以从PowerBuilder中找到相应的技术支持。我们的目标就是让PowerBuilder常青。<br/>]]></description>
  </item>

<item>
  <link>http://blog.zjxu.edu.cn/zyc//readblog.asp?id=17</link>
  <title><![CDATA[PB112最新下载和破解地址]]></title>
  <author>jxxyzyc@126.com(张玉才)</author>
  <category><![CDATA[本站原创]]></category>
  <pubDate>2008-4-18</pubDate>
  <guid>http://blog.zjxu.edu.cn/zyc//readblog.asp?id=17</guid>
  <description><![CDATA[PB112最新下载和破解地址<br/>ftp://pb112:pb112@218.75.60.19:21000<br/>]]></description>
  </item>

<item>
  <link>http://blog.zjxu.edu.cn/zyc//readblog.asp?id=16</link>
  <title><![CDATA[Powerbuilder11.2最新功能介绍:Ajax的支持]]></title>
  <author>jxxyzyc@126.com(张玉才)</author>
  <category><![CDATA[本站原创]]></category>
  <pubDate>2008-4-18</pubDate>
  <guid>http://blog.zjxu.edu.cn/zyc//readblog.asp?id=16</guid>
  <description><![CDATA[Powerbuilder11.2最新功能介绍:Ajax的支持<br/>    powerbuilder11.2版本终于出来了，本版本的更新主要体现在对Ajax (Asynchronous JavaScript and XML)技术的支持，在pb11版本中，pb提供了可以将pb的C/S程序转化为.net程序web form，但是在数据操作界面的刷新不支持对单个字段的刷新，导致整个数据界面的刷新，这样给用户操作带来了很大的不方便。对Ajax技术的支持，大大减少了数据的双向传递和屏幕闪烁。<br/>    现在升级的11.2完全支持了Ajax功能。对Ajax技术的支持不需要我们程序员学习什么新的东西，全部是powerbuilder自动完成的，但是要使powerbuilder在生成.net的web form程序时需要有Ajax的环境，包括服务器和开发端。<br/>    Ajax程序可以在相关网站http://www.asp.net/ajax/downloads/archive下载微软的ASP.NET AJAX 扩展版本1.0 。]]></description>
  </item>

<item>
  <link>http://blog.zjxu.edu.cn/zyc//readblog.asp?id=15</link>
  <title><![CDATA[在Powerbuilder和MS SQL Server环境下如何得到中文字符串的拼音首字母]]></title>
  <author>jxxyzyc@126.com(张玉才)</author>
  <category><![CDATA[本站原创]]></category>
  <pubDate>2008-4-11</pubDate>
  <guid>http://blog.zjxu.edu.cn/zyc//readblog.asp?id=15</guid>
  <description><![CDATA[--首先在MS SQL Server中定义如下的自定义函数<br/><br/>create function getPY(@str nvarchar(4000))<br/>returns nvarchar(4000)<br/>as<br/>begin<br/>declare @word nchar(1),@PY nvarchar(4000)<br/>set @PY=&#39;&#39;<br/>while len(@str)&gt;0<br/>begin<br/>set @word=left(@str,1)<br/>--如果非汉字字符，返回原字符<br/>set @PY=@PY+(case when unicode(@word) between 19968 and 19968+20901<br/>then (select top 1 PY from (<br/>select &#39;A&#39; as PY,N&#39;驁&#39; as word<br/>union all select &#39;B&#39;,N&#39;簿&#39;<br/>union all select &#39;C&#39;,N&#39;錯&#39;<br/>union all select &#39;D&#39;,N&#39;鵽&#39;<br/>union all select &#39;E&#39;,N&#39;樲&#39;<br/>union all select &#39;F&#39;,N&#39;鰒&#39;<br/>union all select &#39;G&#39;,N&#39;腂&#39;<br/>union all select &#39;H&#39;,N&#39;夻&#39;<br/>union all select &#39;J&#39;,N&#39;攈&#39;<br/>union all select &#39;K&#39;,N&#39;穒&#39;<br/>union all select &#39;L&#39;,N&#39;鱳&#39;<br/>union all select &#39;M&#39;,N&#39;旀&#39;<br/>union all select &#39;N&#39;,N&#39;桛&#39;<br/>union all select &#39;O&#39;,N&#39;漚&#39;<br/>union all select &#39;P&#39;,N&#39;曝&#39;<br/>union all select &#39;Q&#39;,N&#39;囕&#39;<br/>union all select &#39;R&#39;,N&#39;鶸&#39;<br/>union all select &#39;S&#39;,N&#39;蜶&#39;<br/>union all select &#39;T&#39;,N&#39;籜&#39;<br/>union all select &#39;W&#39;,N&#39;鶩&#39;<br/>union all select &#39;X&#39;,N&#39;鑂&#39;<br/>union all select &#39;Y&#39;,N&#39;韻&#39;<br/>union all select &#39;Z&#39;,N&#39;咗&#39;<br/>) T <br/>where word&gt;=@word collate Chinese_PRC_CS_AS_KS_WS <br/>order by PY ASC) else @word end)<br/>set @str=right(@str,len(@str)-1)<br/>end<br/>return @PY<br/>end<br/><br/>//其次在Powerbuilder中可以通过嵌入式SQL 语句进行处理。<br/>string ClientCode    //转换后的拼音首字母<br/>string ClientName=&quot;你要转换的字符串&quot;<br/>select top 1 dbo.getpy(:ClientName) into :clientcode from sysobjects;<br/>]]></description>
  </item>

<item>
  <link>http://blog.zjxu.edu.cn/zyc//readblog.asp?id=14</link>
  <title><![CDATA[如何在Powerbuilder中使用MsComm控件提取电话号码]]></title>
  <author>jxxyzyc@126.com(张玉才)</author>
  <category><![CDATA[本站原创]]></category>
  <pubDate>2008-4-11</pubDate>
  <guid>http://blog.zjxu.edu.cn/zyc//readblog.asp?id=14</guid>
  <description><![CDATA[//引用请注明作者：张玉才<br/>//在界面上放置mscomm32.ocx控件，<br/>//在ole_1.onComm时间中写入：<br/>string tem<br/>string strDate,strTime,strNumb<br/>int i<br/>choose Case this.object.CommEvent<br/>&nbsp;Case 2<br/>&nbsp;&nbsp;tem=trim(this.object.Input)<br/>&nbsp;&nbsp;if isnull(tem) then<br/>&nbsp;&nbsp;&nbsp;tem=&#39;&#39;<br/>&nbsp;&nbsp;end if<br/>&nbsp;&nbsp;if pos(tem,&#39;ring&#39;)&gt;0 then<br/>&nbsp;&nbsp;&nbsp;tem=&#39;&#39;<br/>&nbsp;&nbsp;end if<br/>&nbsp;&nbsp;AcceptStr1=AcceptStr1+tem<br/>&nbsp;&nbsp;if pos(AcceptStr1,&#39;NMBR&#39;)&gt;0 then<br/>&nbsp;&nbsp;&nbsp;AcceptNum1= AcceptNum1+1<br/>&nbsp;&nbsp;&nbsp;TelNum1=TelNum1+tem<br/>&nbsp;&nbsp;&nbsp;if  AcceptNum1=3 then<br/>&nbsp;&nbsp;&nbsp;&nbsp;AcceptNum1=0<br/>&nbsp;&nbsp;&nbsp;&nbsp;i=pos(TelNum1,&#39;NMBR&#39;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;TelNum1=trim(mid(TelNum1,i+5))<br/>&nbsp;&nbsp;&nbsp;&nbsp;//messagebox(&#39;&#39;,TelNum1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;tel_1.text=TelNum1<br/>&nbsp;&nbsp;&nbsp;&nbsp;TelNum=gettel(TelNum1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;selectclient(telnum)<br/>&nbsp;&nbsp;&nbsp;&nbsp;TelNum1=&#39;&#39;<br/>&nbsp;&nbsp;&nbsp;&nbsp;AcceptStr1=&#39;&#39;<br/>&nbsp;&nbsp;&nbsp;&nbsp;this.Object.InBufferCount = 0 <br/>&nbsp;&nbsp;&nbsp;end if<br/>&nbsp;&nbsp;end if<br/>end choose<br/><br/>]]></description>
  </item>

<item>
  <link>http://blog.zjxu.edu.cn/zyc//readblog.asp?id=13</link>
  <title><![CDATA[在powerbuilder中如何使用FTP进行操作]]></title>
  <author>jxxyzyc@126.com(张玉才)</author>
  <category><![CDATA[本站原创]]></category>
  <pubDate>2008-4-11</pubDate>
  <guid>http://blog.zjxu.edu.cn/zyc//readblog.asp?id=13</guid>
  <description><![CDATA[//引用请表明作者：张玉才<br/>//定义全局外部函数<br/>function uLong InternetOpenA(string lpszAgent, ulong dwAccessType,string lpszProxyName,string lpszProxyBypass, ulong dwFlags) library &quot;wininet.dll&quot;<br/>function ulong InternetConnectA(ulong hInternet,string lpszServerName,ulong nServerPort,string lpszUsername,string lpszPassword,ulong dwService,ulong dwFlags,ulong dwContext) library &quot;wininet.dll&quot;<br/>function boolean InternetCloseHandle(ulong hInternet) library &quot;wininet.dll&quot;<br/>function boolean FtpSetCurrentDirectoryA(ulong hConnect,string lpszDirectory) library &quot;wininet.dll&quot;<br/>function boolean FtpGetFileA(ulong hConnect, string lpszRemoteFile,string lpszNewFile,boolean fFailIfExists,ulong dwFlagsAndAttributes,ulong dwFlags,ulong dwContext) library &quot;wininet.dll&quot;<br/>function boolean FtpPutFileA(ulong hConnect,string lpszLocalFile,string lpszRemoteFile,ulong dwFlags,ulong dwContext)  library &quot;wininet.dll&quot;<br/>//参数dwFlags 指定为1时，用ASCII 传输文件（A类传输方法），指定为2是用二进制传输文件（1类传输方法）。由于DIRMAP.TXT 是ASCII 文本文件，我们传递值1。 <br/>//当使用回叫信号时，lContext 用来识别应用程序前后关系。因为在我们的例子中不使用回叫信号，所以这个值为0。<br/>//============================================================//<br/>//定义FTP相关的变量<br/>string GS_FTPSERVER,GS_FTPLOGINUSER,GS_FTPLOGINPASS<br/>long GL_FTPLOGINPORT<br/><br/>GS_FTPSERVER=ProfileString(&quot;copyfile.ini&quot;,&quot;update&quot;,&quot;ftpserver&quot;,&quot;&quot;)<br/>GL_FTPLOGINPORT=integer(ProfileString(&quot;copyfile.ini&quot;,&quot;update&quot;,&quot;FTPLOGINPORT&quot;,&quot;&quot;))<br/>GS_FTPLOGINUSER=ProfileString(&quot;copyfile.ini&quot;,&quot;update&quot;,&quot;FTPLOGINUSER&quot;,&quot;&quot;)<br/>GS_FTPLOGINPASS=ProfileString(&quot;copyfile.ini&quot;,&quot;update&quot;,&quot;FTPLOGINPASS&quot;,&quot;&quot;)<br/>long ll_hret,ll_hftp<br/>ll_hret = InternetOpenA(&#39;数据库更新&#39;,0,&#39;&#39;,&#39;&#39;,0)<br/>if ll_hret = 0 or isnull(ll_hret) then<br/>  &nbsp;messagebox(&#39;错误!&#39;,&#39;缺少动态连接库WinInet.Dll!&#39;,stopsign!)<br/> &nbsp;return <br/>end if<br/>ll_hftp = InternetConnectA(ll_hret,GS_FTPSERVER,GL_FTPLOGINPORT,GS_FTPLOGINUSER,GS_FTPLOGINPASS,1,0,0)<br/>if ll_hftp=0 then<br/>&nbsp;messagebox(&#39;错误!&#39;,&#39;FTP服务器不能连接!&#39;,stopsign!)<br/>&nbsp;InternetCloseHandle(ll_hret) <br/> &nbsp;return <br/>end if<br/>string SourceFileDir,TargetFileDir<br/>string SourceFileName,TargetFileName,FileName<br/>//组织源文件和上传的目标文件<br/>if not FtpPutFileA(ll_hftp,SourceFileName,TargetFileName,2,0) then<br/>&nbsp;messagebox(&#39;&#39;,&#39;文件&lt;&#39;+SourceFileName+&#39;&gt;不能上传!&#39;)<br/>next<br/>InternetCloseHandle(ll_hret) <br/>InternetCloseHandle(ll_hftp) ]]></description>
  </item>

<item>
  <link>http://blog.zjxu.edu.cn/zyc//readblog.asp?id=12</link>
  <title><![CDATA[信息抽取的资料文档]]></title>
  <author>jxxyzyc@126.com(张玉才)</author>
  <category><![CDATA[转载]]></category>
  <pubDate>2008-3-23</pubDate>
  <guid>http://blog.zjxu.edu.cn/zyc//readblog.asp?id=12</guid>
  <description><![CDATA[转载：<a href=http://www.fullsearcher.com/n200511171744735.asp target=_blank>http://www.fullsearcher.com/n200511171744735.asp</a><br/><br/>1.网上信息抽取技术纵览（下载）  <br/>Line Eikvil 原著 （1999.7） 陈鸿标 译 (2003.3)<br/>信息抽取（Information Extraction: IE）是把文本里包含的信息进行结构化处理，变成表格一样的组织形式。输入信息抽取系统的是原始文本，输出的是固定格式的信息点。信息点从各种各样的文档中被抽取出来，然后以统一的形式集成在一起。这就是信息抽取的主要任务………<br/>第一章导论<br/>第二章简要介绍信息抽取技术<br/>第三章介绍网页分装器(wrapper)的开发<br/>第四章介绍已经开发出来的网站信息抽取系统<br/>第五章介绍信息抽取技术的应用范围以及首批已经进入商业运作的商用系统<br/><br/><br/><br/>2.Language Independent Named Entity Recognition Combining Morphological and Contextual Evidence<br/> Silviu Cucerzan ，David Yarowsky<br/> 一种独立于语言的命名实体识别方法。<br/><br/><br/><br/>3.信息抽取研究综述  <br/>  王建会对自动摘要算法改进方面所做的研究工作<br/><br/><br/><br/>4.信息抽取综述<br/>  这是介绍信息抽取(Information Extraction)的一篇报告,包括MUC、Web抽取(Web Extraction)等。<br/><br/><br/><br/>5.FASTUS: A Cascaded Finite-State Transducer for Extracting Information from Natural-Language Text<br/>  本文介绍了FASTUS系统，这是一个从自然语言文本中进行信息抽取的系统， 抽取来的信息输入数据库或者用作其它用途。<br/><br/><br/><br/>6.MUC-7 Information Extraction Task Definition<br/>  MUC-7信息抽取任务的定义<br/><br/><br/><br/>7.OVERVIEW OF MUC-7/MET-2<br/> 本文简要介绍了MUL-7/MET-2的任务<br/><br/><br/><br/>8.Information Extraction: Techniques and Challenges<br/>本文介绍了IE(Information Extration)技术(18页)。<br/><br/><br/><br/>9.信息抽取研究综述李保利，陈玉忠，俞士汶<br/>摘要：信息抽取研究旨在为人们提供更有力的信息获取工具，以应对信息爆炸带来的严重挑战。与信息检索不同，信息抽取直接从自然语言文本中抽取事实信息。过去十多年来，信息抽取逐步发展成为自然语言处理领域的一个重要分支，其独特的发展轨迹——通过系统化、大规模地定量评测推动研究向前发展，以及某些成功启示，如部分分析技术的有效性、快速NLP系统开发的必要性，都极大地推动了自然语言处理研究的发展，促进了NLP研究与应用的紧密结合。回顾信息抽取研究的历史，总结信息抽取研究的现状，将有助于这方面研究工作向前发展。<br/><br/><br/><br/>10.Class-based Language Modeling for Named Entity Identification (Draft)<br/>Jian Sun, Ming Zhou, Jianfeng Gao<br/><br/>(Accepted by special issue \\\\\\\&quot;Word Formation and Chinese Language processing\\\\\\\&quot; of the International Journal of Computational Linguistics and Chinese Language Processing) Abstract: We address in this paper the problem of Chinese named entity (NE) identification using class-based language models (LM). This study is concentrated on three kinds of NEs that are most commonly used, namely, personal name (PER), location name (LOC) and organization name (ORG). Our main contributions are three-fold: (1) In our research, Chinese word segmentation and NE identification have been integrated into a unified framework. It consists of several sub-models, each of which in turn may include other sub-models, leads to the overall model a hierarchical architecture. The class-based hierarchical LM not only effectively captures the features of named entities, but also handles the data sparseness problem. (2) Modeling for NE abbreviation is put forward. Our modeling-based method for NE abbreviation has significant advantages over rule-based ones. (3) In addition, we employ a two-level architecture for ORG model, so that the nested entities in organization names can be identified. When decoding, two-step strategy is adopted: identifying PER and LOC; and identifying ORG. The evaluation on a large, wide-coverage open-test data has empirically demonstrated that the class-based hierarchical language modeling, which integrates segmentation and NE identification, unifies the abbreviation modeling into one framework, has achieved competitive results of Chinese NE identification. <br/><br/><br/><br/>11.BBN公司的信息抽取系统SIFT（中文详细说明）<br/>Scott Miller, Michael Crystal, Heidi Fox, Lance Ramshaw, Richard Schwartz,<br/>这是BBN的MUC7参评系统SIFT系统的说明，我把它翻译了一下，基本意思很明了，但部分细节我可能还没有把握准确，如果有问题，请给我来信说明。<br/><br/><br/><br/>12.(slides) Chinese Named Entity Identification using class-based language model<br/>Jian Sun, Jianfeng Gao, Lei Zhang, Ming Zhou, and Changning Huang<br/>This is the slides for the 19th International Conference on Computational Linguistics<br/><br/><br/><br/>13.Chinese Named Entity Identification using class-based language model<br/>Jian Sun, Jianfeng Gao, Lei Zhang, Ming Zhou, and Changning Huang<br/>We consider here the problem of Chinese named entity (NE) identification using statistical language model(LM). In this research, word segmentation and NE identification have been integrated into a unified framework that consists of several class-based language models. We also adopt a hierarchical structure for one of the LMs so that the nested entities in organization names can be identified. The evaluation on a large test set shows consistent improvements. Our experiments further demonstrate the improvement after seamlessly integrating with linguistic heuristic information, cache-based model and NE abbreviation identification.<br/><br/><br/><br/>14.MUC-7 EVALUATION OF IE TECHNOLOGY: Overview of Results<br/>Elaine Marsh, Dennis Perzanowski<br/>reviews MUC-7 and introduces the result and progress during this conference<br/><br/><br/><br/>15.Method of k-Nearest Neighbors<br/><br/><br/><br/>　<br/><br/><br/><br/>16.Multilingual Topic Detection and Tracking:Successful Research Enabled by Corpora and Evaluation<br/>Charles L. Wayne<br/>Topic Detection and Tracking (TDT) refers to automatic techniques for locating topically related material in streams of data such as newswire and broadcast news. DARPA-sponsored research has made enormous progress during the past three years, and the tasks have been made progressively more difficult and realistic. Well-designed corpora and objective performance evaluations have enabled this success.<br/><br/><br/><br/>17.信息提取概述<br/>骆卫华的综述报告<br/><br/><br/><br/>18.Information Extraction Supported Question Answering<br/>Cymfony公司的IE系统，主要面向QA，包括已实现的NE系统和将要实现的CE和GE的原型。<br/><br/><br/><br/>19.ALGORITHMS THAT LEARN TO EXTRACT INFORMATION<br/><br/><br/><br/>20.Description of the American University in Cairo\&quot;s System Used for MUC-7<br/><br/><br/><br/>　<br/><br/><br/><br/>21.Analyzing the Complexity of a Domain With Respect To An Information Extraction Task<br/><br/><br/><br/>　<br/><br/><br/><br/>22.从半结构化文本与自由格式文本中学习信息抽取规则 <br/><br/>作者Stephen Soderland为华盛顿州立大学计算机科学系教授。本文的被引用次数高达50多次。论文以信息抽取系统WHISK系统为例，描述了如何以机器学习的方式，利用小规模样本训练系统自动学习目标文本的抽取模式，从而实现自动化信息抽取的一种技术。这种技术不但极具启发意义而且很有实用价值。<br/><br/><br/><br/>23.信息抽取研究综述 <br/><br/>本文出自北京大学计算机科学与技术系，综述了信息抽取的一些基本概念。 <br/><br/><br/><br/>24.利用Lixto进行可视化的信息抽取 <br/><br/>作者分析了Lixto抽取系统的架构，介绍了一种半自动化的Wrapper生成技术与自动化Web信息抽取技术。<br/><br/><br/><br/>25.Web数据抽取工具综述 <br/><br/>作者将目前的几种Web数据抽取工具按照六种分类：Wrapper开发语言，可感知HTML的工具，基于NLP的工具，Wrapper归纳工具，基于建模的工具，基于语义的工具依次介绍了各Web数据抽取工具的工作原理与特点，并且比较了它们的一般输出质量。 <br/><br/><br/><br/>　<br/><br/><br/><br/>26.针对BBS短文本的提取标注<br/><br/><br/><br/>本文前半段将会介绍有关本体的相关概念，后一部分将介绍本体在我们系统中的应用。为了配合信息提取，需要一些先验性的知识和统计信息。所以，我们构造了自己的针对BBS短文本的提取标注工具。为此构建了本体知识并以直观方式展现出来。结合本体推理机，我们的标注工具在标注的同时具备推理能力使得标注智能化，并能通过引用一个包装好的提取算法进行提取预览。<br/><br/><br/><br/>27.XWRAP􀀀 An XML enabled Wrapper Construction System for Web Information Sources<br/><br/><br/><br/>Ling Liu􀀀 Calton Pu􀀀 Wei Han<br/><br/>This paper describes the methodology and the<br/>software development of XWRAP􀀀 an XMLenabled wrap<br/>per construction system for semiautomatic generation of<br/>wrapper programs By XMLenabled we mean that the<br/>metadata about information content that are implicit in<br/>the original web pages will be extracted and encoded ex<br/>plicitly as XML tags in the wrapped documents In addi<br/>tion􀀀 the querybased content ltering process is performed<br/>against the XML documents The XWRAP wrapper gen<br/>eration framework has three distinct features First􀀀 it ex<br/>plicitly separates tasks of building wrappers that are spe<br/>cic to a Web source from the tasks that are repetitive<br/>for any source􀀀 and uses a component library to provide<br/>basic building blocks for wrapper programs Second􀀀 it pro<br/>vides a userfriendly interface program to allow wrapper<br/>developers to generate their wrapper code with a few mouse<br/>clicks Third and most importantly􀀀 we introduce and de<br/>velop a twophase code generation framework The rst<br/>phase utilizes an interactive interface facility to encode the<br/>sourcespecic metadata knowledge identied by individual<br/>wrapper developers as declarative information extraction<br/>rules The second phase combines the information extrac<br/>tion rules generated at the rst phase with the XWRAP<br/>component library to construct an executable wrapper pro<br/>gram for the given web source We report the initial ex<br/>periments on performance of the XWRAP code generation<br/>system and the wrapper programs generated by XWRAP 　<br/><br/><br/><br/>28.Data Mining on Symbolic Knowledge Extracted from the Web<br/><br/><br/><br/>Rayid Ghani􀀀, Rosie Jones􀀀, Dunja Mladeni´cy􀀀, Kamal Nigam􀀀, Se´an Slattery􀀀<br/>Information extractors and classifiers operating on unrestricted, unstructured<br/>texts are an errorful source of large amounts of potentially<br/>useful information, especially when combined with a crawler which<br/>automatically augments the knowledge base from the world-wide<br/>web. At the same time, there is much structured information on the<br/>WorldWideWeb. Wrapping the web-sites which provide this kind of<br/>information provide us with a second source of information; possibly<br/>less up-to-date, but reliable as facts. We give a case study of combining<br/>information from these two kinds of sources in the context<br/>of learning facts about companies. We provide results of association<br/>rules, propositional and relational learning, which demonstrate<br/>that data-mining can help us improve our extractors, and that using<br/>information from two kinds of sources improves the reliability of<br/>data-mined rules. <br/><br/><br/><br/>29.A Brief Survey of Web Data Extraction Tools<br/>Alberto H. F. Laender Berthier A. RibeiroNeto<br/>Altigran S. da Silva Juliana S. Teixeira<br/><br/>In the last few years, several works in the literature have addressed the problem of data extraction from Web pages. The importance of this problem derives from the fact that, once extracted, the data can be handled in a way similar to instances of a traditional database. The approaches proposed in the literature to address the problem of Web data extraction use techniques borrowed from areas such as natural language processing, languages and grammars, machine learning, information retrieval,... <br/><br/><br/><br/>30.Toward Semantic Understanding|An Approach Based on Information Extraction Ontologies<br/>Information is ubiquitous, and we are <br/>ooded with<br/>more than we can process. Somehow, we must rely<br/>less on visual processing, point-and-click navigation,<br/>and manual decision making and more on computer<br/>sifting and organization of information and auto-<br/>mated negotiation and decision making. A resolu-<br/>tion of these problems requires software with seman-<br/>tic understanding|a grand challenge of our time.<br/>More particularly, we must solve problems of au-<br/>tomated interoperability, integration, and knowledge<br/>sharing, and we must build information agents and<br/>process agents that we can trust to give us the in-<br/>formation we want and need and to negotiate on our<br/>behalf in harmony with our beliefs and goals.<br/>This paper pro ers the use of information-<br/>extraction ontologies as an approach that may lead<br/>to semantic understanding.<br/>Keywords: Semantics, information extraction, high-<br/>precision classi cation, schema mapping, data inte-<br/>gration, Semantic Web, agent communication, ontol-<br/>ogy, ontology generation. <br/><br/><br/><br/>31.基于《知网》的中文信息结构抽取<br/>The Chinese message structure is composed of several Chinese fragments which may be<br/>characters words or phrases. Every message structure carries certain information. We have developed a<br/>HowNet-based extractor that can extract Chinese message structures from a real text and serves as an<br/>interactive tool for building large-scale bank of Chinese message structures. The system utilizes the<br/>HowNet Knowledge System as its basic resources. It is an integrated system of rule-based analyzer,<br/>statistics based on the examples and the analogy given by HowNet-based concept similarity calculator.<br/>Keyword: Chinese message structure; Knowledge Database Mark-up Language (KDML); parsing;<br/>chunk; <br/><br/><br/><br/>32.Wrapper induction􀀀 Efficiency and expressiveness Extended abstract<br/><br/><br/><br/>　Recently􀀀 many systems have been built that auto<br/>matically interact with Internet information resources<br/>However􀀀 these resources are usually formatted for use<br/>by people e􀀀g􀀀􀀀 the relevant content is embedded in<br/>HTML pages Wrappers are often used to extract a<br/>resources content􀀀 but handcoding wrappers is te<br/>dious and errorprone We advocate wrapper induction􀀀<br/>a technique for automatically constructing wrappers<br/>We have identied several wrapper classes that can be<br/>learned quickly most sites require only a handful of ex<br/>amples􀀀 consuming a few CPU seconds of processing􀀀<br/>yet which are useful for handling numerous Internet re<br/>sources  <br/>of surveyed sites can be handled by our<br/>techniques <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>33.WysiWyg Web Wrapper Factory (W4F)<br/><br/><br/><br/>In this paper, we present the W4F toolkit for the generation of<br/>wrappers for Web sources. W4F consists of a retrieval language to<br/>identify Web sources, a declarative extraction language (the HTML<br/>Extraction Language) to express robust extraction rules and a map-<br/>ping interface to export the extracted information into some user-<br/>de ned data-structures. To assist the user and make the creation<br/>of wrappers rapid and easy, the toolkit o ers some wysiwyg support<br/>via some wizards. Together, they permit the fast and semi-automatic<br/>generation of ready-to-go wrappers provided as Java classes. W4F has<br/>been successfully used to generate wrappers for database systems and<br/>software agents, making the content of Web sources easily accessible<br/>to any kind of application. <br/><br/><br/><br/>34.Adaptive Information Extraction from Text by Rule Induction and Generalisation<br/>(LP)2 is a covering algorithm for adaptive Information<br/>Extraction from text (IE). It induces<br/>symbolic rules that insert SGML tags into texts<br/>by learning from examples found in a userdefined<br/>tagged corpus. Training is performed in<br/>two steps: initially a set of tagging rules is<br/>learned; then additional rules are induced to<br/>correct mistakes and imprecision in tagging. Induction<br/>is performed by bottom-up generalization<br/>of examples in the training corpus. Shallow<br/>knowledge about Natural Language Processing<br/>(NLP) is used in the generalization process. The<br/>algorithm has a considerable success story.<br/>From a scientific point of view, experiments report<br/>excellent results with respect to the current<br/>state of the art on two publicly available corpora.<br/>From an application point of view, a successful<br/>industrial IE tool has been based on<br/>(LP)2. Real world applications have been developed<br/>and licenses have been released to external<br/>companies for building other applications. This<br/>paper presents (LP)2, experimental results and<br/>applications, and discusses the role of shallow<br/>NLP in rule induction. <br/><br/><br/>35.Advanced Web Technology Information Extraction<br/><br/>　 <br/>本文地址：http://www.FullSearcher.Com/n200511171744735.asp <br/>网站地址：http://www.FullSearcher.Com/ <br/>文章来源：fullsearcher <br/>]]></description>
  </item>

<item>
  <link>http://blog.zjxu.edu.cn/zyc//readblog.asp?id=11</link>
  <title><![CDATA[信息抽取的资料文档]]></title>
  <author>jxxyzyc@126.com(张玉才)</author>
  <category><![CDATA[转载]]></category>
  <pubDate>2008-3-23</pubDate>
  <guid>http://blog.zjxu.edu.cn/zyc//readblog.asp?id=11</guid>
  <description><![CDATA[1.网上信息抽取技术纵览（下载）  <br/>Line Eikvil 原著 （1999.7） 陈鸿标 译 (2003.3)<br/>信息抽取（Information Extraction: IE）是把文本里包含的信息进行结构化处理，变成表格一样的组织形式。输入信息抽取系统的是原始文本，输出的是固定格式的信息点。信息点从各种各样的文档中被抽取出来，然后以统一的形式集成在一起。这就是信息抽取的主要任务………<br/>第一章导论<br/>第二章简要介绍信息抽取技术<br/>第三章介绍网页分装器(wrapper)的开发<br/>第四章介绍已经开发出来的网站信息抽取系统<br/>第五章介绍信息抽取技术的应用范围以及首批已经进入商业运作的商用系统<br/><br/><br/><br/>2.Language Independent Named Entity Recognition Combining Morphological and Contextual Evidence<br/> Silviu Cucerzan ，David Yarowsky<br/> 一种独立于语言的命名实体识别方法。<br/><br/><br/><br/>3.信息抽取研究综述  <br/>  王建会对自动摘要算法改进方面所做的研究工作<br/><br/><br/><br/>4.信息抽取综述<br/>  这是介绍信息抽取(Information Extraction)的一篇报告,包括MUC、Web抽取(Web Extraction)等。<br/><br/><br/><br/>5.FASTUS: A Cascaded Finite-State Transducer for Extracting Information from Natural-Language Text<br/>  本文介绍了FASTUS系统，这是一个从自然语言文本中进行信息抽取的系统， 抽取来的信息输入数据库或者用作其它用途。<br/><br/><br/><br/>6.MUC-7 Information Extraction Task Definition<br/>  MUC-7信息抽取任务的定义<br/><br/><br/><br/>7.OVERVIEW OF MUC-7/MET-2<br/> 本文简要介绍了MUL-7/MET-2的任务<br/><br/><br/><br/>8.Information Extraction: Techniques and Challenges<br/>本文介绍了IE(Information Extration)技术(18页)。<br/><br/><br/><br/>9.信息抽取研究综述李保利，陈玉忠，俞士汶<br/>摘要：信息抽取研究旨在为人们提供更有力的信息获取工具，以应对信息爆炸带来的严重挑战。与信息检索不同，信息抽取直接从自然语言文本中抽取事实信息。过去十多年来，信息抽取逐步发展成为自然语言处理领域的一个重要分支，其独特的发展轨迹——通过系统化、大规模地定量评测推动研究向前发展，以及某些成功启示，如部分分析技术的有效性、快速NLP系统开发的必要性，都极大地推动了自然语言处理研究的发展，促进了NLP研究与应用的紧密结合。回顾信息抽取研究的历史，总结信息抽取研究的现状，将有助于这方面研究工作向前发展。<br/><br/><br/><br/>10.Class-based Language Modeling for Named Entity Identification (Draft)<br/>Jian Sun, Ming Zhou, Jianfeng Gao<br/><br/>(Accepted by special issue \\\\\\\&quot;Word Formation and Chinese Language processing\\\\\\\&quot; of the International Journal of Computational Linguistics and Chinese Language Processing) Abstract: We address in this paper the problem of Chinese named entity (NE) identification using class-based language models (LM). This study is concentrated on three kinds of NEs that are most commonly used, namely, personal name (PER), location name (LOC) and organization name (ORG). Our main contributions are three-fold: (1) In our research, Chinese word segmentation and NE identification have been integrated into a unified framework. It consists of several sub-models, each of which in turn may include other sub-models, leads to the overall model a hierarchical architecture. The class-based hierarchical LM not only effectively captures the features of named entities, but also handles the data sparseness problem. (2) Modeling for NE abbreviation is put forward. Our modeling-based method for NE abbreviation has significant advantages over rule-based ones. (3) In addition, we employ a two-level architecture for ORG model, so that the nested entities in organization names can be identified. When decoding, two-step strategy is adopted: identifying PER and LOC; and identifying ORG. The evaluation on a large, wide-coverage open-test data has empirically demonstrated that the class-based hierarchical language modeling, which integrates segmentation and NE identification, unifies the abbreviation modeling into one framework, has achieved competitive results of Chinese NE identification. <br/><br/><br/><br/>11.BBN公司的信息抽取系统SIFT（中文详细说明）<br/>Scott Miller, Michael Crystal, Heidi Fox, Lance Ramshaw, Richard Schwartz,<br/>这是BBN的MUC7参评系统SIFT系统的说明，我把它翻译了一下，基本意思很明了，但部分细节我可能还没有把握准确，如果有问题，请给我来信说明。<br/><br/><br/><br/>12.(slides) Chinese Named Entity Identification using class-based language model<br/>Jian Sun, Jianfeng Gao, Lei Zhang, Ming Zhou, and Changning Huang<br/>This is the slides for the 19th International Conference on Computational Linguistics<br/><br/><br/><br/>13.Chinese Named Entity Identification using class-based language model<br/>Jian Sun, Jianfeng Gao, Lei Zhang, Ming Zhou, and Changning Huang<br/>We consider here the problem of Chinese named entity (NE) identification using statistical language model(LM). In this research, word segmentation and NE identification have been integrated into a unified framework that consists of several class-based language models. We also adopt a hierarchical structure for one of the LMs so that the nested entities in organization names can be identified. The evaluation on a large test set shows consistent improvements. Our experiments further demonstrate the improvement after seamlessly integrating with linguistic heuristic information, cache-based model and NE abbreviation identification.<br/><br/><br/><br/>14.MUC-7 EVALUATION OF IE TECHNOLOGY: Overview of Results<br/>Elaine Marsh, Dennis Perzanowski<br/>reviews MUC-7 and introduces the result and progress during this conference<br/><br/><br/><br/>15.Method of k-Nearest Neighbors<br/><br/><br/><br/>　<br/><br/><br/><br/>16.Multilingual Topic Detection and Tracking:Successful Research Enabled by Corpora and Evaluation<br/>Charles L. Wayne<br/>Topic Detection and Tracking (TDT) refers to automatic techniques for locating topically related material in streams of data such as newswire and broadcast news. DARPA-sponsored research has made enormous progress during the past three years, and the tasks have been made progressively more difficult and realistic. Well-designed corpora and objective performance evaluations have enabled this success.<br/><br/><br/><br/>17.信息提取概述<br/>骆卫华的综述报告<br/><br/><br/><br/>18.Information Extraction Supported Question Answering<br/>Cymfony公司的IE系统，主要面向QA，包括已实现的NE系统和将要实现的CE和GE的原型。<br/><br/><br/><br/>19.ALGORITHMS THAT LEARN TO EXTRACT INFORMATION<br/><br/><br/><br/>20.Description of the American University in Cairo\&quot;s System Used for MUC-7<br/><br/><br/><br/>　<br/><br/><br/><br/>21.Analyzing the Complexity of a Domain With Respect To An Information Extraction Task<br/><br/><br/><br/>　<br/><br/><br/><br/>22.从半结构化文本与自由格式文本中学习信息抽取规则 <br/><br/>作者Stephen Soderland为华盛顿州立大学计算机科学系教授。本文的被引用次数高达50多次。论文以信息抽取系统WHISK系统为例，描述了如何以机器学习的方式，利用小规模样本训练系统自动学习目标文本的抽取模式，从而实现自动化信息抽取的一种技术。这种技术不但极具启发意义而且很有实用价值。<br/><br/><br/><br/>23.信息抽取研究综述 <br/><br/>本文出自北京大学计算机科学与技术系，综述了信息抽取的一些基本概念。 <br/><br/><br/><br/>24.利用Lixto进行可视化的信息抽取 <br/><br/>作者分析了Lixto抽取系统的架构，介绍了一种半自动化的Wrapper生成技术与自动化Web信息抽取技术。<br/><br/><br/><br/>25.Web数据抽取工具综述 <br/><br/>作者将目前的几种Web数据抽取工具按照六种分类：Wrapper开发语言，可感知HTML的工具，基于NLP的工具，Wrapper归纳工具，基于建模的工具，基于语义的工具依次介绍了各Web数据抽取工具的工作原理与特点，并且比较了它们的一般输出质量。 <br/><br/><br/><br/>　<br/><br/><br/><br/>26.针对BBS短文本的提取标注<br/><br/><br/><br/>本文前半段将会介绍有关本体的相关概念，后一部分将介绍本体在我们系统中的应用。为了配合信息提取，需要一些先验性的知识和统计信息。所以，我们构造了自己的针对BBS短文本的提取标注工具。为此构建了本体知识并以直观方式展现出来。结合本体推理机，我们的标注工具在标注的同时具备推理能力使得标注智能化，并能通过引用一个包装好的提取算法进行提取预览。<br/><br/><br/><br/>27.XWRAP􀀀 An XML enabled Wrapper Construction System for Web Information Sources<br/><br/><br/><br/>Ling Liu􀀀 Calton Pu􀀀 Wei Han<br/><br/>This paper describes the methodology and the<br/>software development of XWRAP􀀀 an XMLenabled wrap<br/>per construction system for semiautomatic generation of<br/>wrapper programs By XMLenabled we mean that the<br/>metadata about information content that are implicit in<br/>the original web pages will be extracted and encoded ex<br/>plicitly as XML tags in the wrapped documents In addi<br/>tion􀀀 the querybased content ltering process is performed<br/>against the XML documents The XWRAP wrapper gen<br/>eration framework has three distinct features First􀀀 it ex<br/>plicitly separates tasks of building wrappers that are spe<br/>cic to a Web source from the tasks that are repetitive<br/>for any source􀀀 and uses a component library to provide<br/>basic building blocks for wrapper programs Second􀀀 it pro<br/>vides a userfriendly interface program to allow wrapper<br/>developers to generate their wrapper code with a few mouse<br/>clicks Third and most importantly􀀀 we introduce and de<br/>velop a twophase code generation framework The rst<br/>phase utilizes an interactive interface facility to encode the<br/>sourcespecic metadata knowledge identied by individual<br/>wrapper developers as declarative information extraction<br/>rules The second phase combines the information extrac<br/>tion rules generated at the rst phase with the XWRAP<br/>component library to construct an executable wrapper pro<br/>gram for the given web source We report the initial ex<br/>periments on performance of the XWRAP code generation<br/>system and the wrapper programs generated by XWRAP 　<br/><br/><br/><br/>28.Data Mining on Symbolic Knowledge Extracted from the Web<br/><br/><br/><br/>Rayid Ghani􀀀, Rosie Jones􀀀, Dunja Mladeni´cy􀀀, Kamal Nigam􀀀, Se´an Slattery􀀀<br/>Information extractors and classifiers operating on unrestricted, unstructured<br/>texts are an errorful source of large amounts of potentially<br/>useful information, especially when combined with a crawler which<br/>automatically augments the knowledge base from the world-wide<br/>web. At the same time, there is much structured information on the<br/>WorldWideWeb. Wrapping the web-sites which provide this kind of<br/>information provide us with a second source of information; possibly<br/>less up-to-date, but reliable as facts. We give a case study of combining<br/>information from these two kinds of sources in the context<br/>of learning facts about companies. We provide results of association<br/>rules, propositional and relational learning, which demonstrate<br/>that data-mining can help us improve our extractors, and that using<br/>information from two kinds of sources improves the reliability of<br/>data-mined rules. <br/><br/><br/><br/>29.A Brief Survey of Web Data Extraction Tools<br/>Alberto H. F. Laender Berthier A. RibeiroNeto<br/>Altigran S. da Silva Juliana S. Teixeira<br/><br/>In the last few years, several works in the literature have addressed the problem of data extraction from Web pages. The importance of this problem derives from the fact that, once extracted, the data can be handled in a way similar to instances of a traditional database. The approaches proposed in the literature to address the problem of Web data extraction use techniques borrowed from areas such as natural language processing, languages and grammars, machine learning, information retrieval,... <br/><br/><br/><br/>30.Toward Semantic Understanding|An Approach Based on Information Extraction Ontologies<br/>Information is ubiquitous, and we are <br/>ooded with<br/>more than we can process. Somehow, we must rely<br/>less on visual processing, point-and-click navigation,<br/>and manual decision making and more on computer<br/>sifting and organization of information and auto-<br/>mated negotiation and decision making. A resolu-<br/>tion of these problems requires software with seman-<br/>tic understanding|a grand challenge of our time.<br/>More particularly, we must solve problems of au-<br/>tomated interoperability, integration, and knowledge<br/>sharing, and we must build information agents and<br/>process agents that we can trust to give us the in-<br/>formation we want and need and to negotiate on our<br/>behalf in harmony with our beliefs and goals.<br/>This paper pro ers the use of information-<br/>extraction ontologies as an approach that may lead<br/>to semantic understanding.<br/>Keywords: Semantics, information extraction, high-<br/>precision classi cation, schema mapping, data inte-<br/>gration, Semantic Web, agent communication, ontol-<br/>ogy, ontology generation. <br/><br/><br/><br/>31.基于《知网》的中文信息结构抽取<br/>The Chinese message structure is composed of several Chinese fragments which may be<br/>characters words or phrases. Every message structure carries certain information. We have developed a<br/>HowNet-based extractor that can extract Chinese message structures from a real text and serves as an<br/>interactive tool for building large-scale bank of Chinese message structures. The system utilizes the<br/>HowNet Knowledge System as its basic resources. It is an integrated system of rule-based analyzer,<br/>statistics based on the examples and the analogy given by HowNet-based concept similarity calculator.<br/>Keyword: Chinese message structure; Knowledge Database Mark-up Language (KDML); parsing;<br/>chunk; <br/><br/><br/><br/>32.Wrapper induction􀀀 Efficiency and expressiveness Extended abstract<br/><br/><br/><br/>　Recently􀀀 many systems have been built that auto<br/>matically interact with Internet information resources<br/>However􀀀 these resources are usually formatted for use<br/>by people e􀀀g􀀀􀀀 the relevant content is embedded in<br/>HTML pages Wrappers are often used to extract a<br/>resources content􀀀 but handcoding wrappers is te<br/>dious and errorprone We advocate wrapper induction􀀀<br/>a technique for automatically constructing wrappers<br/>We have identied several wrapper classes that can be<br/>learned quickly most sites require only a handful of ex<br/>amples􀀀 consuming a few CPU seconds of processing􀀀<br/>yet which are useful for handling numerous Internet re<br/>sources  <br/>of surveyed sites can be handled by our<br/>techniques <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>33.WysiWyg Web Wrapper Factory (W4F)<br/><br/><br/><br/>In this paper, we present the W4F toolkit for the generation of<br/>wrappers for Web sources. W4F consists of a retrieval language to<br/>identify Web sources, a declarative extraction language (the HTML<br/>Extraction Language) to express robust extraction rules and a map-<br/>ping interface to export the extracted information into some user-<br/>de ned data-structures. To assist the user and make the creation<br/>of wrappers rapid and easy, the toolkit o ers some wysiwyg support<br/>via some wizards. Together, they permit the fast and semi-automatic<br/>generation of ready-to-go wrappers provided as Java classes. W4F has<br/>been successfully used to generate wrappers for database systems and<br/>software agents, making the content of Web sources easily accessible<br/>to any kind of application. <br/><br/><br/><br/>34.Adaptive Information Extraction from Text by Rule Induction and Generalisation<br/>(LP)2 is a covering algorithm for adaptive Information<br/>Extraction from text (IE). It induces<br/>symbolic rules that insert SGML tags into texts<br/>by learning from examples found in a userdefined<br/>tagged corpus. Training is performed in<br/>two steps: initially a set of tagging rules is<br/>learned; then additional rules are induced to<br/>correct mistakes and imprecision in tagging. Induction<br/>is performed by bottom-up generalization<br/>of examples in the training corpus. Shallow<br/>knowledge about Natural Language Processing<br/>(NLP) is used in the generalization process. The<br/>algorithm has a considerable success story.<br/>From a scientific point of view, experiments report<br/>excellent results with respect to the current<br/>state of the art on two publicly available corpora.<br/>From an application point of view, a successful<br/>industrial IE tool has been based on<br/>(LP)2. Real world applications have been developed<br/>and licenses have been released to external<br/>companies for building other applications. This<br/>paper presents (LP)2, experimental results and<br/>applications, and discusses the role of shallow<br/>NLP in rule induction. <br/><br/><br/>35.Advanced Web Technology Information Extraction<br/><br/>　 <br/>本文地址：http://www.FullSearcher.Com/n200511171744735.asp <br/>网站地址：http://www.FullSearcher.Com/ <br/>文章来源：fullsearcher <br/>]]></description>
  </item>

<item>
  <link>http://blog.zjxu.edu.cn/zyc//readblog.asp?id=10</link>
  <title><![CDATA[如何做好一个垂直搜索引擎]]></title>
  <author>jxxyzyc@126.com(张玉才)</author>
  <category><![CDATA[转载]]></category>
  <pubDate>2008-3-23</pubDate>
  <guid>http://blog.zjxu.edu.cn/zyc//readblog.asp?id=10</guid>
  <description><![CDATA[本文先引用几句话：<br/>1.“确解用户之意，切返用户之需。”<br/>2.“门户网站都想着是怎样省钱，而不是怎样花钱来买技术。”<br/>3.“搜索引擎不是人人都能做的领域，进入的门槛比较高。”<br/>4.“只是优秀还不够，最好的方式是将一件事情做到极致。”（google十大真理）<br/>5.“做搜索引擎需要专注” “对于一项排到第四的业务，门户很难做到专注。”<br/>6.“用户无法描述道他要找什么，除非让他看到想找的东西。”<br/>7. “所谓楔形，其实就是个倒三角，倒三角的尖端部分代表搜索技术，中部是基于技术的产品应用平台，最上端是对整个搜索引擎用户人群文化的认识和理解，以及现代公司竞争最关键也最捉摸不定的所谓品牌。” “楔形”蕴涵的另一个意义是：楔子要打到墙里，尖端是否锐利很重要，但楔子的破坏性有多强，究竟能在墙面挤压出多大的空间，其中端、后端的沉稳与厚重才是关键。<br/><br/><br/><br/>搜索引擎的技术和理念都是需要时间和经验的积累的，更是需要长期不断的完善进步的，绝对不要认为可以一蹴而就，要达到一个相对成熟领先的搜索引擎从开始到领先的周期一般需要是四年。着急不得。原因是因为搜索引擎太复杂，而且“用户无法描述他要找什么，除非让他看到想找的东西。” 一切都需要摸索，尝试，问题需要一个一个解决，用户的需要得一点点的挖掘。<br/>搜索引擎是一个产品，给用户提供服务的产品，需要长期的不断的改进升级调整才能持续不断的提用户体验，需要满足用户不断增长并且变化的需求、需要不断适应网络的变化。这是因为网络环境是不断变化的、网民的需求也是不断变化的。千万不要把搜索当成项目来做，做完了撂那让用户去用那你肯定没戏。在搜索引擎领域是讲体验的、新的引擎如果用户体验一旦整体上有领先一年以上的差距并且持续2年，那前期的领先者的优势就荡然无存，因为搜索引擎的用户转移成本相对而言是比较低的而且口碑是最佳的传播方式。如果一个搜索引擎不能持续不断的技术创新理念创新，那对于这个搜索引擎来说就等于死亡。我们一般形容搜索引擎的领先是以时间计算的。比如：中搜离百度整体差距×年，百度离google的整体差距×年，……只要你能在用户体验上保持一年的领先优势持续2年，不需要炒作，一切纷至沓来。在用户体验面前，任何的炒作都显得很渺小。<br/>作垂直搜索引擎，麻雀虽小，但是五脏俱全。无论理念文化、产品管理、应用、技术都和搜索引擎的楔形理论没有什么区别。所以要做好一垂直搜索必须解决这几个方面。<br/><br/><br/><br/>楔形的尖：垂直搜索技术。<br/>垂直搜索技术主要分为两个层次：模板级和网页库级。模板级是针对网页进行模板设定或者自动生成模板的方式抽取数据，对网页的采集也是针对性的采集，适合规模比较小、信息源少且稳定的需求，优点是快速实施、成本低、灵活性强，缺点是后期维护成本高，信息源和信息量小。网页库级就是在信息源数量上、数据容量上检索容量上、稳定性可靠性上都是网页库搜索引擎级别的要求，和模板方式最大的区别是对具体网页不依赖，可针对任意正常的网页进信息采集信息抽取……。这就导致这种方式数据容量上和模板方式有质的区别，但是其灵活性差、成本高。当然模板方式和网页库级的方式不是对立的，这两者对于垂直搜索引擎来说是相互补充的，因为技术只是手段，目的是切反用户之需。本文谈及的技术主要是指网页库级别垂直搜索引擎技术。<br/>搜索引擎的确是一项对技术要求比较高的应用，几年前相关的人才也比较少。现在搜索技术人才多了，相关的技术和技术的应用得相对以前而言更加成熟，但是竞争也更加激烈了。垂直搜索大致需要以下技术：<br/>1. 信息采集技术<br/>2. 网页信息抽取技术<br/>3. 信息的处理技术，包括：重复识别、重复识别、聚类、比较、分析、语料分析等<br/>4. 语意相关性分析<br/>5. 分词<br/>6. 索引<br/>信息采集技术，垂直搜索引擎spider和网页库的spider相比应该是更加专业，可定制化。可定向性的采集和垂直搜索范围相关的网页忽略不相关的网页和不必要的网页，选择内容相关的以及适合做进一步处理的网页深度优先采集、对页面有选择的调整更新频率……，采集可通过人工设定网址和网页分析url方式共同进行。垂直搜索对信息的更新有着特别的要求，根据这些特点可以从以下几点考虑1.信息源的稳定性（不能让信息源网站感觉到spider的压力）2.抓取的成本问题3.对用户体验改善程度。根据以上几点制定一种比较好的策略，要做到恰到好处。策略上可以评估网站/网页更新的系数、网站/网页的重要系数、用户点击系数（或曝光系数）、网站稳定系数……，根据这些系数来确定对这些网站/网页更新的频率。再由于新信息和更新了的信息list页面前面或者首页，所以对网页进行很好的分级可以以低成本很好的解决更新问题，系数比较低的网页一月update一次，稍微高点的一周update一次、中等的几天到一天一次、高的几小时到几分钟一次。类似搜索引擎的大库、周库、日库，小时库……<br/>基于视觉网页块分析技术，模拟IE浏览器的显示方式，对网页进行解析。根据人类视觉原理，把网页解析处理的结果，进行分块，再根据需要，对这些块进行处理，如：采集定向、介绍抽取和一些必要的内容的抽取正文抽取……<br/>结构化信息抽取技术，将网页中的非结构化数据按照一定的需求抽取成结构化数据。有两种方式，简单的就是模板方式，另外就是对网页不依赖web结构化信息抽取方式，这两种方式可以互取长处，以最简单最有效的办法满足需求。垂直搜索引擎和通用搜索引擎最大的区别就是对网页信息结构化抽取后再结构化数据进行深度的处理，提供专业的搜索服务。所以web结构化信息抽取的技术水平是决定垂直搜索引擎质量的重要技术指标。其实web结构化信息抽取在百度、google早已经广泛应用了，如：MP3、图片搜索、google的本地搜索就是从网页库抽取出企业信息，添加到其地图搜索中的，google通过这种技术正在颠覆做内容的方式。同样的技术应用还在qihoo、sogou购物、shopping等各种应用中体现。<br/>简单的语法分析，简单的语法分析在搜索引擎中非常重要，可以通过简单的语法分析来改善数据的质量，低成本的获得某类信息，改善排序，寻找需要的内容……<br/>信息处理技术，信息处理包括的范围比较广，主要包括去重、聚类、分析……，这根据需要相关的技术就非常多。<br/>数据挖掘，找出您的信息的关联性对于垂直搜索来说非常重要，有效，可以在这些相关性上为用户提供更细致的服务。<br/>分词技术，面向搜索的分词技术，建立和您的行业相关的词库。注意这是面向搜索的分词，不是面向识别和准确的分词。就这个工作安排十几个人不停的维护也不会嫌多。<br/>索引技术，索引技术对于垂直搜索非常关键，一个网页库级的搜索引擎必须要支持分布索引、分层建库、分布检索、灵活的更新、灵活的权值调整、灵活的索引和灵活的升级扩展、高可靠性稳定性冗余性。还需要支持各种技术的扩展，如偏移量计算等。<br/>其它技术，略。<br/><br/><br/><br/>垂直搜索引擎的技术评估应从以下几点来判断<br/>1. 全面性<br/>2. 更新性<br/>3. 准确性<br/>4. 功能性<br/><br/><br/><br/>锲形的中和尾：产品应用平台和对搜索引擎文化理念的理解<br/>对于任何一个产品来说，产品的模式是最重要的，技术只是手段、工具、途径。用户不会关心你的技术是如何实现的、更不会关心你的技术水平是什么样的，只要用户感觉：这就是我需要的东西，很好用，而且是最好用的。那么你的产品就OK了。<br/>考虑一个产品的模式需要考虑的东西很多，如：用户需要什么？需求有多大？能不能完整的实现用户的需求？需要什么资源？怎么做到？竞争分析？差异化？根据自身情况能做到什么程度？怎么样保持领先优势？能否收到钱？怎么样收钱？怎么样推广？需要多少时间？如何保证在时间窗口期内有效完成进度？如何分步分期优先完成用户最需要的需求？如何建立有效的反馈机制让我可以了解用户的需求变化和挖掘用户自己也无法表达的需求？如何进一步改善？分期需要多大的投入？如何降低整体成本和前期成本？如何分期投入？投资回报比？周期？……<br/>1. 确解用户之意<br/>任何应用最难的就是了解用户的需求，甚至是用户自己都不知道的需求。<br/>建立完善的、快速的用户意见反馈机制和用户需求调查机制，所有人都应倾听用户的牢骚、建议。不断的分析、修改。<br/>2. 切返用户之需<br/>满足用户的需求，一切纷至沓来。不需要炒作，请把您的资源多多花费在为用户提供良好的体验上来。<br/>3. 不要干扰用户的意图，培养用户的使用习惯和技巧<br/>有一个故事是这样的：还在yahoo使用google的搜索的时候，华尔街的几个分析师来评估这两个搜索哪个好用，去掉logo。结果一致评价yahoo的检索效果好。因为yahoo是使用的google检索结果，并且对热点关键词进行了人工调整。但是一转身这些分析师回到自己的电脑边查询东西，不约而同的打开了google。<br/>4. 细节决定成败<br/>信息不是越多越好，在海量的信息时代，如果不能妥善的整理信息，那就等于没有信息。每个页面的每个字，每个像素、图片的放置都值得花费时间去琢磨。把用户最需要的放在最显眼的位置，次需要的放置到更多页面，不需要的扔掉。<br/>5. 将一件事情做到极致<br/>不仅仅要关注80%的用户的80%的需求，20%的用户的20%的需求是您成败关键所在。<br/>6. 专注<br/>这么多需要你解决的问题，你还能干其它事情？对于一个排在第四的业务你是没有机会的。所以垂直搜索引擎的成功肯定不是具备良好资源的行业门户、也不会是大搜索的公司，必然是专注于某一行业的搜索引擎公司。因为只有专注，才能将一件事情做到极致。<br/>7. 创新<br/>失败不要紧，但是如果搜索引擎公司没有创新，那这个搜索引擎公司必然面向的就是死亡。<br/>8. 需要完全掌握主要技术。<br/>一个核心业务不可能通过外包手段来解决技术问题。虽然找个大公司外包技术看起来很美丽，很快速，甚至成本比较低。但是这是在毁灭你的将来。因为这是产品，不是项目。产品是需要不断完善调整的，用户的需求也是变化的需要挖掘的，互联网也是变化的，你外包技术绝对不可能做到灵活、及时满足各种变化。在和竞争对手竞争的时候您如何保持您的领先优势？（前文说了，如果被对手保持领先一段时间，那么你之前的领先优势就荡然无存）。这里还没有考虑竞争问题，购买其它搜索引擎公司的技术，对方会不会把真正的技术毫不保留的卖给你。再说，卖你你你能搞懂吗？技术再困难也要自行解决。否则你注定失败。最好的办法就是购买核心技术缩短研发周期、成本、风险，再在这个核心技术进行自主研发。<br/>这是垂直搜索的技术门槛，看似不高，其实很高。<br/>对于技术问题可以迂回解决，用最简单的技术满足用户最迫切的需求。用户是不会关心技术实现的。<br/>模板方式可以是网页结构化信息抽取技术的补充。对于可行的应用早期采用模板技术也是不错的选择。比如chinabbs就做的很好，用户的主要需求是要浏览到好的帖子，所以加强内容的建设，找高水平的编辑做推荐，而且在界面和易用性上也很不错。领先qihoo。技术方面他们初期采用的应该是模板自动生成方式采集论坛信息，比qihoo技术水平差，但是这目前不是用户需求的关键，而且qihoo技术水平层次虽然高但是如果不成熟，体现给用户的东西未必就强。Chinabbs接下来再解决技术难点，在技术上有提升，那么他就能持续保持领先优势了。(但是话又说回来，招聘好的编辑很容易，技术要提升一个层次并且成熟很难，而且很耗费时间，当然用户习惯和知名度也是需要很长时间培养的)<br/>9. 用最简单的技术实现用户最迫切的需要<br/>技术重要，但是技术的使用得当更重要，技术是为用户体验服务的。只要能满足用户需要，什么技术都可以，简单不代表不行，用最简单的技术实现用户最迫切的需要。百度的整体技术我认为离google中文至少有1年以上差距，很多方面差距更大，但是百度的效果比google好，原因就是将简单的技术用于实现用户迫切的需求。<br/>举个我身边的例子来描述简单的技术实现需求：我把我们的基于视觉的网页块分析的正文抽取技术演示给一好友看，好友看后说：我们也实现了。我大惊，他们不是做搜索的，居然也实现了！ 他告诉我他们实现的方法后，我再次吃惊，深感简单的技术也可以很好的解决问题，虽然不完全解决，但是能满足自己的需求就好。他们的解决方法是：对网页的html进行分析，将整段文字中没有html代码的文字提取出来，这就是正文。（惊叹！！如此简单！！注：他们的信息源都是这样的格式）<br/>10. 根据中国本土互联网特点，强力的antispam，对信息进行清洗。<br/>11. 很多人误解垂直搜索就是把相关的行业网页做一个采集，进行正文抽取，实现搜索，完成信息册查询。其实并非如此。如果这样无法和网页搜索竞争，网页搜索很容易就可以将网页库按行业分类、按地区分类。<br/>    垂直搜索应该是对垂直行业信息进行深度的加工，有效的整合，为用户提供网页搜索无法做到的专业性、功能性，为用户提供深一步的服务和完整的体验，而且不仅仅是提供信息的检索。垂直搜索是和信息搜索有本质的差异化的。<br/>12.专注用户体验的改善，任何的宣传炒作都是空乏无意义的，搜索引擎的核心在于用户体验，你只要改善用户体验，比别人强一点点，那么其它人的炒作和宣传都在为你打工<br/><br/><br/><br/><br/>本文会不断修改，请转载本文的网站保持本文的链接。如何做好一个垂直搜索引擎<br/><br/> <br/>本文地址：http://www.FullSearcher.Com/n2005125125722735.asp <br/>网站地址：http://www.FullSearcher.Com/ <br/>文章来源：fullsearcher <br/>  <br/>]]></description>
  </item>

<item>
  <link>http://blog.zjxu.edu.cn/zyc//readblog.asp?id=9</link>
  <title><![CDATA[什么是垂直搜索？]]></title>
  <author>jxxyzyc@126.com(张玉才)</author>
  <category><![CDATA[转载]]></category>
  <pubDate>2008-3-23</pubDate>
  <guid>http://blog.zjxu.edu.cn/zyc//readblog.asp?id=9</guid>
  <description><![CDATA[什么是垂直搜索？[原创]<br/><a href=http://FullSearch.Com target=_blank>http://FullSearch.Com</a> 中文全文检索网 2006-1-3 14:14:31 sigz <br/>关键词：垂直搜索引擎 垂直搜索  <br/>原创文章，无版权，可以任意转载，但是转载必须完整转载全文、url和内部解释性链接。　<br/><br/><br/><br/>    垂直搜索是针对某一个行业的专业搜索引擎，是搜索引擎的细分和延伸，是对网页库中的某类专门的信息进行一次整合，定向分字段抽取出需要的数据进行处理后再以某种形式返回给用户。<br/>　  垂直搜索引擎和普通的网页搜索引擎的最大区别是对网页信息进行了结构化信息抽取，也就是将网页的非结构化数据抽取成特定的结构化信息数据，好比网页搜索是以网页为最小单位，基于视觉的网页块分析是以网页块为最小单位，而垂直搜索是以结构化数据为最小单位。然后将这些数据存储到数据库，进行进一步的加工处理，如：去重、分类等，最后分词、索引再以搜索的方式满足用户的需求。<br/>　　整个过程中，数据由非结构化数据抽取成结构化数据，经过深度加工处理后以非结构化的方式和结构化的方式返回给用户。<br/>    垂直搜索引擎的应用方向很多，比如企业库搜索、供求信息搜索引擎、购物搜索、房产搜索、人才搜索、地图搜索、mp3搜索、图片搜索……几乎各行各业各类信息都可以进一步细化成各类的垂直搜索引擎。<br/>    举个例子来说明会更容易理解，比如购物搜索引擎，整体流程大致如下：抓取网页后，对网页商品信息进行抽取，抽取出商品名称、价格、简介……甚至可以进一步将笔记本简介细分成“品牌、型号、CPU、内存、硬盘、显示屏、……”然后对信息进行清洗、去重、分类、分析比较、数据挖掘，最后通过分词索引提供用户搜索、通过分析挖掘提供市场行情报告。<br/>   垂直搜索引擎大体上需要以下技术<br/>    １．Spider<br/>    ２．网页结构化信息抽取技术或元数据采集技术<br/>   