﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-小默-随笔分类-Language</title><link>http://www.cppblog.com/momoxiao/category/14698.html</link><description /><language>zh-cn</language><lastBuildDate>Tue, 27 Sep 2011 20:18:28 GMT</lastBuildDate><pubDate>Tue, 27 Sep 2011 20:18:28 GMT</pubDate><ttl>60</ttl><item><title>[zz]JavaScript 的 new， 好久不见啊</title><link>http://www.cppblog.com/momoxiao/archive/2011/09/24/156668.html</link><dc:creator>小默</dc:creator><author>小默</author><pubDate>Fri, 23 Sep 2011 20:54:00 GMT</pubDate><guid>http://www.cppblog.com/momoxiao/archive/2011/09/24/156668.html</guid><wfw:comment>http://www.cppblog.com/momoxiao/comments/156668.html</wfw:comment><comments>http://www.cppblog.com/momoxiao/archive/2011/09/24/156668.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/momoxiao/comments/commentRss/156668.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/momoxiao/services/trackbacks/156668.html</trackback:ping><description><![CDATA[<div><a href="http://ued.taobao.com/blog/2007/05/15/%E4%BD%A0%E7%9C%9F%E7%9A%84%E4%BC%9A%E5%86%99javascript%E5%90%97%EF%BC%9F/">http://ued.taobao.com/blog/2007/05/15/%E4%BD%A0%E7%9C%9F%E7%9A%84%E4%BC%9A%E5%86%99javascript%E5%90%97%EF%BC%9F/<br /></a>--<br /><span class="Apple-style-span" style="color: #333333; font-family: Helvetica, Arial, 'Liberation Sans', FreeSans, sans-serif; line-height: 25px; background-color: #ffffff; "><h2 style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 16px; color: #ff6700; font-family: 'Microsoft Yahei'; ">JavaScript 的 new， 好久不见啊</h2><p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><font size="2"><em style="font-style: italic; ">原文：&nbsp;</em><a href="http://yuiblog.com/blog/2006/11/13/javascript-we-hardly-new-ya/" style="text-decoration: underline; color: #0064b1; "><font size="2"><em style="font-style: italic; ">JavaScript, We Hardly new Ya</em></font></a><em style="font-style: italic; ">&nbsp;－－</em></font><em style="font-style: italic; "><font size="2">Douglas Crockford。</font></em></p><p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><font size="2">JavaScript是一门基于原型的语言，但它却拥有一个 new 操作符使得其看起来象一门经典的面对对象语言。那样也迷惑了程序员们，导致一些有问题的编程模式。</font></p><p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><font size="2">其实你永远不需要在JavaScript使用 new Object()。用字面量的形式{}去取代吧。<br /></font><font size="2"><br />同理，不要使用 new Array() ，而代之以字面量[]。JavaScript中的数组并不象Java中的数组那样工作的，使用类似Java的语法只会让你糊涂。</font></p><p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><font size="2">同理不用使用 new Number, new String, 或者 new Boolean。这些的用法只会产生无用的类型封装对象。就直接使用简单的字面量吧。</font></p><p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><font size="2">不要使用 new Function 去创建函数对象。用函数表达式更好。比如：</font></p><p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><font size="2">frames[0].onfocus = new Function(&#8220;document.bgColor=&#8217;antiquewhite&#8217;&#8221;)</font></p><p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><font size="2">更好的写法是：</font></p><p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><font size="2">frames[0].onfocus = function () {document.bgColor = &#8216;antiquewhite&#8217;;};</font></p><p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><font size="2">第二种形式让脚本编译器更快的看到函数主体，于是其中的语法错误也会更快被检测出来。有时候程序员使用 new Function 是因为他们没有理解内部函数是如何工作的。</font></p><p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><font size="2">selObj.onchange = new Function(&#8220;dynamicOptionListObjects["+<br />dol.index+"].change(this)&#8221;);</font></p><p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><font size="2">如果我们让用字符串做函数体，编译器不能看到它们。如果我们用字符串表达式做函数体，我们同样也看不到它们。更好的方式就是不要盲目编程。通过制造一个返回值为函数的函数调用，我们可以明确的按值传递我们想要绑定的值。这允许我们在循环中初始化一系列 selObj 对象。</font></p><p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><font size="2">selObj.onchange = function (i) {<br />return function () {<br />dynamicOptionListObjects[i].change(this);</font></p><p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><font size="2">};<br />}(dol.index);</font></p><p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><font size="2">直接对一个函数使用new永远不是一个好主意。比如， new function 对构造新对象没有提供什么优势。</font></p><p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><font size="2">myObj = new function () {<br />this.type = &#8216;core&#8217;;<br />};</font></p><p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><font size="2">更好的方式是使用对象字面量，它更轻巧，更快捷。</font></p><p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><font size="2">myObj = {<br />type: &#8216;core&#8217;<br />};</font></p><p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><font size="2"></font><font size="2">假如我们需要创建的对象包含的方法需要访问私有变量或者函数，更好的方式仍然是避免使用new.</font><font size="2"></font><font size="2">var foo = new function() {<br />function processMessages(message) {<br />alert(&#8220;Message: &#8221; + message.content);<br />}<br />this.init = function() {<br />subscribe(&#8220;/mytopic&#8221;, this, processMessages);<br />}<br />}<br /></font><font size="2">通过使用 new 去调用函数，对象会持有一个无意义的原型对象。这只会浪费内存而不会带来任何好处。如果我们不使用new，我们就不用在对象链维护一个无用的prototype对象。所以我们可以用（）来正确的调用工厂函数。</font><font size="2"></font><font size="2"></font><font size="2">var foo = function () {<br />function processMessages(message) {<br />alert(&#8220;Message: &#8221; + message.content);<br />}<br />return {<br />init: function () {<br />subscribe(&#8220;/mytopic&#8221;, this, processMessages);<br />}<br />};<br />}();<br /></font><font size="2">所以原则很简单： 唯一应该要用到new操作符的地方就是调用一个古老的构造器函数的时候。当调用一个构造器函数的时候，是强制要求使用new的。</font><font size="2">有时候可以来new一下, 有的时候还是不要了吧。</font></p></span></div><img src ="http://www.cppblog.com/momoxiao/aggbug/156668.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/momoxiao/" target="_blank">小默</a> 2011-09-24 04:54 <a href="http://www.cppblog.com/momoxiao/archive/2011/09/24/156668.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JavaScript 两个等号 三个等号</title><link>http://www.cppblog.com/momoxiao/archive/2011/09/24/156665.html</link><dc:creator>小默</dc:creator><author>小默</author><pubDate>Fri, 23 Sep 2011 18:16:00 GMT</pubDate><guid>http://www.cppblog.com/momoxiao/archive/2011/09/24/156665.html</guid><wfw:comment>http://www.cppblog.com/momoxiao/comments/156665.html</wfw:comment><comments>http://www.cppblog.com/momoxiao/archive/2011/09/24/156665.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/momoxiao/comments/commentRss/156665.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/momoxiao/services/trackbacks/156665.html</trackback:ping><description><![CDATA[== 先转换类型再比较,<br />=== 用来进行严格比较,不是同类型直接false<br /><br /><div><a href="http://blog.csdn.net/chenjian198819/article/details/6707817">http://blog.csdn.net/chenjian198819/article/details/6707817</a></div><img src ="http://www.cppblog.com/momoxiao/aggbug/156665.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/momoxiao/" target="_blank">小默</a> 2011-09-24 02:16 <a href="http://www.cppblog.com/momoxiao/archive/2011/09/24/156665.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HTML &lt;span&gt; 标签</title><link>http://www.cppblog.com/momoxiao/archive/2011/09/08/155382.html</link><dc:creator>小默</dc:creator><author>小默</author><pubDate>Thu, 08 Sep 2011 14:21:00 GMT</pubDate><guid>http://www.cppblog.com/momoxiao/archive/2011/09/08/155382.html</guid><wfw:comment>http://www.cppblog.com/momoxiao/comments/155382.html</wfw:comment><comments>http://www.cppblog.com/momoxiao/archive/2011/09/08/155382.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/momoxiao/comments/commentRss/155382.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/momoxiao/services/trackbacks/155382.html</trackback:ping><description><![CDATA[<div><a href="http://www.w3school.com.cn/tags/tag_span.asp">http://www.w3school.com.cn/tags/tag_span.asp<br />-</a>-<br /><span class="Apple-style-span" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: normal; background-color: #f9f9f9; "><h1 style="margin-top: 15px; margin-right: 0px; margin-bottom: 0px; margin-left: 15px; font-size: 20px; font-family: 微软雅黑; ">HTML &lt;span&gt; 标签</h1><div style="width: 607px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 15px; padding-top: 20px; padding-bottom: 20px; border-right-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-top-width: 1px; border-top-style: solid; border-top-color: #aaaaaa; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #aaaaaa; "><h2 style="font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 14px; ">定义和用法</h2><p style="margin-top: 12px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; line-height: 18px; ">&lt;span&gt; 标签被用来组合文档中的行内元素。</p></div><div style="width: 607px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 15px; padding-top: 20px; padding-bottom: 20px; border-right-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-top-width: 1px; border-top-style: solid; border-top-color: #aaaaaa; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #aaaaaa; "><h2 style="font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 14px; ">HTML 与 XHTML 之间的差异</h2><p style="margin-top: 12px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; line-height: 18px; ">NONE</p></div><div style="width: 607px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 15px; padding-top: 20px; padding-bottom: 20px; border-right-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-top-width: 1px; border-top-style: solid; border-top-color: #aaaaaa; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #aaaaaa; "><h2 style="font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 14px; ">提示和注释：</h2><p class="tip" style="margin-top: 12px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; line-height: 18px; "><span style="font-weight: bold; color: #ff9955; ">提示：</span>请使用 &lt;span&gt; 来组合行内元素，以便通过样式来格式化它们。</p><p class="note" style="margin-top: 12px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; line-height: 18px; "><span style="font-weight: bold; ">注释：</span>span 没有固定的格式表现。当对它应用样式时，它才会产生视觉上的变化。</p></div><div style="width: 607px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 15px; padding-top: 20px; padding-bottom: 20px; border-right-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-top-width: 1px; border-top-style: solid; border-top-color: #aaaaaa; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #aaaaaa; "><h2 style="font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 14px; ">例子</h2><pre style="width: 580px; margin-top: 10px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border-style: initial; border-color: initial; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: dotted; border-right-style: dotted; border-bottom-style: dotted; border-left-style: dotted; border-top-color: #778855; border-right-color: #778855; border-bottom-color: #778855; border-left-color: #778855; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f5f5f5; font-family: 'Courier New', monospace; font-size: 12px; background-position: initial initial; background-repeat: initial initial; ">&lt;p&gt;<code style="font-family: 'Courier New', monospace; color: #0000ff; ">&lt;span&gt;some text.&lt;/span&gt;</code>some other text.&lt;/p&gt;</pre><h3 style="font-weight: bold; margin-top: 20px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 12px; ">例子解释</h3><p style="margin-top: 12px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; line-height: 18px; ">如果不对 span 应用样式，那么 span 元素中的文本与其他文本不会任何视觉上的差异。尽管如此，上例中的 span 元素仍然为 p 元素增加了额外的结构。</p><p style="margin-top: 12px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; line-height: 18px; ">可以为 span 应用 id 或 class 属性，这样既可以增加适当的语义，又便于对 span 应用样式。</p><p style="margin-top: 12px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; line-height: 18px; ">可以对同一个 &lt;span&gt; 元素应用 class 或 id 属性，但是更常见的情况是只应用其中一种。这两者的主要差异是，class 用于元素组（类似的元素，或者可以理解为某一类元素），而 id 用于标识单独的唯一的元素。</p><p class="tip" style="margin-top: 12px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; line-height: 18px; "><span style="font-weight: bold; color: #ff9955; ">提示：</span>事实上，您也许已经注意到了，W3School 站点上有一些文本的样式与其他文本是不同的。比如&#8220;提示&#8221;使用了粗体的橘红色。尽管实现这种效果的方法非常多，但是我们的做法是：使用&#8220;提示&#8221;使用 span 元素，然后对这个 span 元素的父元素，即 p 元素应用 class，这样就可以对这个类的子元素 span 应用相应的样式了。</p><p style="margin-top: 12px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; line-height: 18px; ">HTML:</p><pre style="width: 580px; margin-top: 10px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border-style: initial; border-color: initial; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: dotted; border-right-style: dotted; border-bottom-style: dotted; border-left-style: dotted; border-top-color: #778855; border-right-color: #778855; border-bottom-color: #778855; border-left-color: #778855; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f5f5f5; font-family: 'Courier New', monospace; font-size: 12px; background-position: initial initial; background-repeat: initial initial; ">&lt;p class="tip"&gt;&lt;span&gt;提示：&lt;/span&gt;... ... ...&lt;/p&gt;</pre><p style="margin-top: 12px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; line-height: 18px; ">CSS:</p><pre style="width: 580px; margin-top: 10px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border-style: initial; border-color: initial; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: dotted; border-right-style: dotted; border-bottom-style: dotted; border-left-style: dotted; border-top-color: #778855; border-right-color: #778855; border-bottom-color: #778855; border-left-color: #778855; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f5f5f5; font-family: 'Courier New', monospace; font-size: 12px; background-position: initial initial; background-repeat: initial initial; ">p.tip span {
	font-weight:bold;
	color:#ff9955;
	}
</pre></div><div style="width: 607px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 15px; padding-top: 20px; padding-bottom: 20px; border-right-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-top-width: 1px; border-top-style: solid; border-top-color: #aaaaaa; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #aaaaaa; "><h2 style="font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 14px; ">标准属性</h2><pre style="width: 580px; margin-top: 10px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border-style: initial; border-color: initial; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: dotted; border-right-style: dotted; border-bottom-style: dotted; border-left-style: dotted; border-top-color: #778855; border-right-color: #778855; border-bottom-color: #778855; border-left-color: #778855; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f5f5f5; font-family: 'Courier New', monospace; font-size: 12px; background-position: initial initial; background-repeat: initial initial; ">id, class, title, style, dir, lang, xml:lang</pre><p style="margin-top: 12px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; line-height: 18px; ">如需完整的描述，请访问<a href="http://www.w3school.com.cn/tags/html_ref_standardattributes.asp" style="text-decoration: underline; color: #900b09; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; ">标准属性</a>。</p></div><div style="width: 607px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 15px; padding-top: 20px; padding-bottom: 20px; border-right-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-top-width: 1px; border-top-style: solid; border-top-color: #aaaaaa; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #aaaaaa; "><h2 style="font-weight: bold; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 14px; ">事件属性</h2><pre style="width: 580px; margin-top: 10px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border-style: initial; border-color: initial; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: dotted; border-right-style: dotted; border-bottom-style: dotted; border-left-style: dotted; border-top-color: #778855; border-right-color: #778855; border-bottom-color: #778855; border-left-color: #778855; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f5f5f5; font-family: 'Courier New', monospace; font-size: 12px; background-position: initial initial; background-repeat: initial initial; ">onclick, ondblclick, onmousedown, onmouseup, onmouseover, 
onmousemove, onmouseout, onkeypress, onkeydown, onkeyup</pre><p style="margin-top: 12px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; line-height: 18px; ">如需完整的描述，请访问<a href="http://www.w3school.com.cn/tags/html_ref_eventattributes.asp" style="text-decoration: underline; color: #900b09; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; ">事件属性</a>。</p></div></span></div><img src ="http://www.cppblog.com/momoxiao/aggbug/155382.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/momoxiao/" target="_blank">小默</a> 2011-09-08 22:21 <a href="http://www.cppblog.com/momoxiao/archive/2011/09/08/155382.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javascript语言精粹</title><link>http://www.cppblog.com/momoxiao/archive/2011/09/04/155074.html</link><dc:creator>小默</dc:creator><author>小默</author><pubDate>Sun, 04 Sep 2011 13:41:00 GMT</pubDate><guid>http://www.cppblog.com/momoxiao/archive/2011/09/04/155074.html</guid><wfw:comment>http://www.cppblog.com/momoxiao/comments/155074.html</wfw:comment><comments>http://www.cppblog.com/momoxiao/archive/2011/09/04/155074.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/momoxiao/comments/commentRss/155074.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/momoxiao/services/trackbacks/155074.html</trackback:ping><description><![CDATA[<div>ch04 函数<br /><div style="font-size: 13px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; background-color: #eeeeee; "><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008000; ">//</span><span style="color: #008000; ">///////////&nbsp;Function&nbsp;Literal</span><span style="color: #008000; "><br /></span><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">var</span><span style="color: #000000; ">&nbsp;add&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">function</span><span style="color: #000000; ">&nbsp;(a,b){<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;a&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;b;<br />}<br /><br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">///////////&nbsp;Invocation</span><span style="color: #008000; "><br /></span><span style="color: #000000; "><br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;The&nbsp;Method&nbsp;Invocation&nbsp;Pattern</span><span style="color: #008000; "><br /></span><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">var</span><span style="color: #000000; ">&nbsp;myObject&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;value:&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">,<br />&nbsp;&nbsp;&nbsp;&nbsp;increment:&nbsp;</span><span style="color: #0000FF; ">function</span><span style="color: #000000; ">&nbsp;(inc)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.value&nbsp;</span><span style="color: #000000; ">+=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">typeof</span><span style="color: #000000; ">&nbsp;inc&nbsp;</span><span style="color: #000000; ">===</span><span style="color: #000000; ">&nbsp;'number'&nbsp;</span><span style="color: #000000; ">?</span><span style="color: #000000; ">&nbsp;inc&nbsp;:&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />};<br /><br />myObject.increment();<br />document.writeln(myObject.value);<br /><br />myObject.increment(</span><span style="color: #000000; ">2</span><span style="color: #000000; ">);<br />document.writeln(myObject.value);<br /><br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;The&nbsp;Function&nbsp;Invocation&nbsp;Pattern</span><span style="color: #008000; "><br /></span><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">var</span><span style="color: #000000; ">&nbsp;sum&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;add(</span><span style="color: #000000; ">3</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #000000; ">4</span><span style="color: #000000; ">);<br /><br />myObject.</span><span style="color: #0000FF; ">double</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">function</span><span style="color: #000000; ">(){<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">var</span><span style="color: #000000; ">&nbsp;that&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;Workaround</span><span style="color: #008000; "><br /></span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">var</span><span style="color: #000000; ">&nbsp;helper&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">function</span><span style="color: #000000; ">(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;that.value&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;add(that.value,&nbsp;that.value)<br />&nbsp;&nbsp;&nbsp;&nbsp;};<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;helper();<br />};<br /><br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;Invoke&nbsp;double&nbsp;as&nbsp;a&nbsp;method.</span><span style="color: #008000; "><br /></span><span style="color: #000000; "><br />myObject.</span><span style="color: #0000FF; ">double</span><span style="color: #000000; ">();<br />document.writeln(myObject.value);<br /><br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;The&nbsp;Constructor&nbsp;Invocation&nbsp;Pattern</span><span style="color: #008000; "><br /></span><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">var</span><span style="color: #000000; ">&nbsp;Quo&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">function</span><span style="color: #000000; ">(string){<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.status&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;string;<br />};<br /><br />Quo.prototype.get_status&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">function</span><span style="color: #000000; ">(){<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.status;<br />};<br /><br /></span><span style="color: #0000FF; ">var</span><span style="color: #000000; ">&nbsp;myQuo&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;Quo(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">confused</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />document.writeln(myQuo.get_status());<br /><br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;The&nbsp;Apply&nbsp;Invocation&nbsp;Pattern</span><span style="color: #008000; "><br /></span><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">var</span><span style="color: #000000; ">&nbsp;array&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;[</span><span style="color: #000000; ">3</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #000000; ">4</span><span style="color: #000000; ">];<br /></span><span style="color: #0000FF; ">var</span><span style="color: #000000; ">&nbsp;sum&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;add.apply(</span><span style="color: #0000FF; ">null</span><span style="color: #000000; ">,&nbsp;array);<br /><br /></span><span style="color: #0000FF; ">var</span><span style="color: #000000; ">&nbsp;statusObject&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;status:&nbsp;'A</span><span style="color: #000000; ">-</span><span style="color: #000000; ">OK'<br />};<br /><br /></span><span style="color: #0000FF; ">var</span><span style="color: #000000; ">&nbsp;status&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;Quo.prototype.get_status.apply(statusObject);<br /><br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">//////////////&nbsp;Arguments</span><span style="color: #008000; "><br /></span><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">var</span><span style="color: #000000; ">&nbsp;sum&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">function</span><span style="color: #000000; ">(){<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">var</span><span style="color: #000000; ">&nbsp;i,&nbsp;sum&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">(i&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;&nbsp;i&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">&nbsp;arguments.length;&nbsp;i&nbsp;</span><span style="color: #000000; ">+=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sum&nbsp;</span><span style="color: #000000; ">+=</span><span style="color: #000000; ">&nbsp;arguments[i];<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;sum;<br />};<br /><br />document.writeln(sum(</span><span style="color: #000000; ">4</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #000000; ">8</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #000000; ">15</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #000000; ">16</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #000000; ">23</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #000000; ">42</span><span style="color: #000000; ">));<br /><br /><br /><br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">////////////////&nbsp;4.6&nbsp;Exceptions</span><span style="color: #008000; "><br /></span><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">var</span><span style="color: #000000; ">&nbsp;add&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">function</span><span style="color: #000000; ">(a,&nbsp;b){<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(</span><span style="color: #0000FF; ">typeof</span><span style="color: #000000; ">&nbsp;a&nbsp;</span><span style="color: #000000; ">!==</span><span style="color: #000000; ">&nbsp;'number'&nbsp;</span><span style="color: #000000; ">||</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">typeof</span><span style="color: #000000; ">&nbsp;b&nbsp;</span><span style="color: #000000; ">!==</span><span style="color: #000000; ">&nbsp;'number'){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">throw</span><span style="color: #000000; ">{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name:&nbsp;'TypeError',<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message:&nbsp;'add&nbsp;needs&nbsp;numbers'<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;a&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;b;<br />}<br /><br /></span><span style="color: #0000FF; ">var</span><span style="color: #000000; ">&nbsp;try_it&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">function</span><span style="color: #000000; ">(){<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">try</span><span style="color: #000000; ">{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">seven</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="color: #0000FF; ">catch</span><span style="color: #000000; ">(e){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.writeln(e.name&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;':&nbsp;'&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;e.message);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><br />try_it();<br /><br /><br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">/////////////&nbsp;4.7&nbsp;Argumenting&nbsp;Types</span><span style="color: #008000; "><br /></span><span style="color: #000000; "><br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;TODO</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">Function.prototype.method&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">function</span><span style="color: #000000; ">(name,&nbsp;func){<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.prototype[name]&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;func;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">;<br />};<br /><br /><br />Number.method('integer',&nbsp;</span><span style="color: #0000FF; ">function</span><span style="color: #000000; ">(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;Math[</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">?</span><span style="color: #000000; ">&nbsp;'ceil'&nbsp;:&nbsp;'floor'](</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">);<br />});<br />document.writeln((</span><span style="color: #000000; ">-</span><span style="color: #000000; ">10</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">/</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">3</span><span style="color: #000000; ">).integer());<br /><br /><br />String.method('trim',&nbsp;</span><span style="color: #0000FF; ">function</span><span style="color: #000000; ">(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.replace(</span><span style="color: #000000; ">/^</span><span style="color: #000000; ">\s</span><span style="color: #000000; ">+|</span><span style="color: #000000; ">\s</span><span style="color: #000000; ">+</span><span style="color: #000000; ">$</span><span style="color: #000000; ">/</span><span style="color: #000000; ">g,&nbsp;'');<br />});<br />document.writeln('</span><span style="color: #000000; ">"</span><span style="color: #000000; ">'&nbsp;+&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;neat&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">.trim()&nbsp;+&nbsp;'</span><span style="color: #000000; ">"</span><span style="color: #000000; ">');<br /><br /><br />Function.prototype.method&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">function</span><span style="color: #000000; ">(name,&nbsp;func){<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(</span><span style="color: #000000; ">!</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.prototype[name]){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.prototype[name]&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;func;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />};<br /><br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">/////////////////&nbsp;4.8&nbsp;Recursion</span><span style="color: #008000; "><br /></span><span style="color: #000000; "><br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;hanoi问题，递归求解</span><span style="color: #008000; "><br /></span><span style="color: #0000FF; ">var</span><span style="color: #000000; ">&nbsp;hanoi&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">function</span><span style="color: #000000; ">(disc,&nbsp;src,&nbsp;aux,&nbsp;dst){<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(disc&nbsp;</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hanoi(disc&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,&nbsp;src,&nbsp;dst,&nbsp;aux);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.writeln('Move&nbsp;disc&nbsp;'&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;disc&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;'&nbsp;from&nbsp;'&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;src&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;'&nbsp;to&nbsp;'&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;dst);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hanoi(disc&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,&nbsp;aux,&nbsp;src,&nbsp;dst);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br />hanoi(</span><span style="color: #000000; ">3</span><span style="color: #000000; ">,&nbsp;'Src',&nbsp;'Aux',&nbsp;'Dst');<br /><br /><br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;递归处理浏览器端的文档对象模型</span><span style="color: #008000; "><br />//</span><span style="color: #008000; ">&nbsp;TODO&nbsp;wark_the_DOM&nbsp;和&nbsp;walk&nbsp;什么关系？</span><span style="color: #008000; "><br /></span><span style="color: #0000FF; ">var</span><span style="color: #000000; ">&nbsp;wark_the_DOM&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">function</span><span style="color: #000000; ">&nbsp;walk(node,&nbsp;func){<br />&nbsp;&nbsp;&nbsp;&nbsp;func(node);<br />&nbsp;&nbsp;&nbsp;&nbsp;node&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;node.firstChild;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">while</span><span style="color: #000000; ">(node){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;walk(node,&nbsp;func);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;node&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;node.nextSibling;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />};<br /><br /></span><span style="color: #0000FF; ">var</span><span style="color: #000000; ">&nbsp;getElementsByAttribute&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">function</span><span style="color: #000000; ">(att,&nbsp;value){<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">var</span><span style="color: #000000; ">&nbsp;results&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;[];<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;wark_the_DOM(document.body,&nbsp;</span><span style="color: #0000FF; ">function</span><span style="color: #000000; ">(node){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">var</span><span style="color: #000000; ">&nbsp;actual&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;node.nodeType&nbsp;</span><span style="color: #000000; ">===</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">&nbsp;node.getAttribute(att);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(</span><span style="color: #0000FF; ">typeof</span><span style="color: #000000; ">&nbsp;actual&nbsp;</span><span style="color: #000000; ">===</span><span style="color: #000000; ">&nbsp;'string'&nbsp;</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;node属性是string,node值等于传入的value，或者value不是string</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(actual&nbsp;</span><span style="color: #000000; ">===</span><span style="color: #000000; ">&nbsp;value&nbsp;</span><span style="color: #000000; ">||</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">typeof</span><span style="color: #000000; ">&nbsp;value&nbsp;</span><span style="color: #000000; ">!==</span><span style="color: #000000; ">&nbsp;'string')){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;results.push(node);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});<br />};<br /><br /><br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;尾递归求阶乘。js不能做尾递归优化。</span><span style="color: #008000; "><br /></span><span style="color: #0000FF; ">var</span><span style="color: #000000; ">&nbsp;factorial&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">function</span><span style="color: #000000; ">&nbsp;factorial(i,&nbsp;a){<br />&nbsp;&nbsp;&nbsp;&nbsp;a&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;a&nbsp;</span><span style="color: #000000; ">||</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(i&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">2</span><span style="color: #000000; ">){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;a;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;factorial(i&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,&nbsp;a&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;i);<br />};<br />document.writeln(factorial(</span><span style="color: #000000; ">4</span><span style="color: #000000; ">));<br /><br /><br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">//////////////&nbsp;Scope</span><span style="color: #008000; "><br /></span><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">var</span><span style="color: #000000; ">&nbsp;foo&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">function</span><span style="color: #000000; ">(){<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">var</span><span style="color: #000000; ">&nbsp;a&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">3</span><span style="color: #000000; ">,&nbsp;b&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">5</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">var</span><span style="color: #000000; ">&nbsp;bar&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">function</span><span style="color: #000000; ">(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">var</span><span style="color: #000000; ">&nbsp;b&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">7</span><span style="color: #000000; ">,&nbsp;c&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">11</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a&nbsp;</span><span style="color: #000000; ">+=</span><span style="color: #000000; ">&nbsp;b&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;c;<br />&nbsp;&nbsp;&nbsp;&nbsp;};<br />&nbsp;&nbsp;&nbsp;&nbsp;bar();<br />};<br />foo();<br /><br /><br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">////////////&nbsp;Closure</span><span style="color: #008000; "><br /></span><span style="color: #000000; "><br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;通过调用函数的形式初始化myObject</span><span style="color: #008000; "><br />//</span><span style="color: #008000; ">&nbsp;该函数返回一个包含有2个方法的对象，并且这些方法享有继续访问value变量的特权</span><span style="color: #008000; "><br /></span><span style="color: #0000FF; ">var</span><span style="color: #000000; ">&nbsp;myObject&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">function</span><span style="color: #000000; ">(){<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">var</span><span style="color: #000000; ">&nbsp;value&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;increment:&nbsp;</span><span style="color: #0000FF; ">function</span><span style="color: #000000; ">(inc){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value&nbsp;</span><span style="color: #000000; ">+=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">typeof</span><span style="color: #000000; ">&nbsp;inc&nbsp;</span><span style="color: #000000; ">===</span><span style="color: #000000; ">&nbsp;'number'&nbsp;</span><span style="color: #000000; ">?</span><span style="color: #000000; ">&nbsp;inc&nbsp;:&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getVaule:&nbsp;</span><span style="color: #0000FF; ">function</span><span style="color: #000000; ">(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;value;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}();&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;立刻执行</span><span style="color: #008000; "><br /></span><span style="color: #000000; "><br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;创建一个名为quo的构造函数.&nbsp;它构造出带有get_status方法和status私有属性的一个对象。</span><span style="color: #008000; "><br /></span><span style="color: #0000FF; ">var</span><span style="color: #000000; ">&nbsp;quo&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">function</span><span style="color: #000000; ">(status){<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get_status:&nbsp;</span><span style="color: #0000FF; ">function</span><span style="color: #000000; ">(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;status;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;};<br />};<br /></span><span style="color: #0000FF; ">var</span><span style="color: #000000; ">&nbsp;myQuo&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;quo(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">amazed</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />document.writeln(myQuo.get_status());<br /><br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;定义一个函数，它设置一个DOM节点为黄色，然后把它变成白色</span><span style="color: #008000; "><br /></span><span style="color: #0000FF; ">var</span><span style="color: #000000; ">&nbsp;fade&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">function</span><span style="color: #000000; ">(node){<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">var</span><span style="color: #000000; ">&nbsp;level&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">var</span><span style="color: #000000; ">&nbsp;step&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">function</span><span style="color: #000000; ">(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">var</span><span style="color: #000000; ">&nbsp;hex&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;level.toString(</span><span style="color: #000000; ">16</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;node.style.backgroundColor&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;'#FFFF'&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;hex&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;hex;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;TODO&nbsp;颜色编码</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(level&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">15</span><span style="color: #000000; ">){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;level&nbsp;</span><span style="color: #000000; ">+=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setTimeout(step,&nbsp;</span><span style="color: #000000; ">100</span><span style="color: #000000; ">);&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;setTimeout()方法用于在指定的毫秒数后调用函数或计算表达式</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;};<br />&nbsp;&nbsp;&nbsp;&nbsp;setTimeout(step,&nbsp;</span><span style="color: #000000; ">100</span><span style="color: #000000; ">);<br />};<br />fade(document.body);<br /><br /><br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;给一个数组中的节点设置事件处理程序</span><span style="color: #008000; "><br /></span><span style="color: #0000FF; ">var</span><span style="color: #000000; ">&nbsp;add_the_handles&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">function</span><span style="color: #000000; ">(nodes){<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">var</span><span style="color: #000000; ">&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">(i&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;&nbsp;i&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">&nbsp;nodes.length;&nbsp;i</span><span style="color: #000000; ">+=</span><span style="color: #000000; ">1</span><span style="color: #000000; ">){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;node[i].onclick&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">function</span><span style="color: #000000; ">(i){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">function</span><span style="color: #000000; ">(e){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(e);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}(i);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />};<br />add_the_handles(document.body);<br /><br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">///////////&nbsp;Module</span><span style="color: #008000; "><br /></span><span style="color: #000000; "><br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;寻找字符串中的HTML字符，并替换为它们对应的字符</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">String.method('deentityify',</span><span style="color: #0000FF; ">function</span><span style="color: #000000; ">(){<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;The&nbsp;entity&nbsp;table.&nbsp;Itmaps&nbsp;entity&nbsp;names&nbsp;to&nbsp;characters.</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">var</span><span style="color: #000000; ">&nbsp;entity</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;quot:&nbsp;'</span><span style="color: #000000; ">"</span><span style="color: #000000; ">',<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lt:&nbsp;'&lt;',<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gt:&nbsp;'&gt;'<br />&nbsp;&nbsp;&nbsp;&nbsp;};<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Return&nbsp;the&nbsp;deentityify&nbsp;method.<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;function(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;this.replace(/&amp;([^&amp;;]+);/g,&nbsp;//&nbsp;TODO&nbsp;正则<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function(a,&nbsp;b){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;r&nbsp;=&nbsp;entity[b];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;typeof&nbsp;r&nbsp;===&nbsp;'string'&nbsp;?&nbsp;r&nbsp;:&nbsp;a;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;})<br />&nbsp;&nbsp;&nbsp;&nbsp;};<br />}());<br />document.writeln('&amp;lt;&amp;quot;&amp;gt;'.deentityify());<br /><br />//&nbsp;返回一个用来产生唯一字符串的对象<br />//&nbsp;唯一字符串由两部分组成：前缀+序列号<br />//&nbsp;该对象包括一个设置前缀的方法，一个设置序列号的方法，和一个产生唯一字符串的gensym方法<br />var&nbsp;serial_maker&nbsp;=&nbsp;function(){<br />&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;prefix&nbsp;=&nbsp;'';<br />&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;seq&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set_prefix:&nbsp;function(p){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;prefix&nbsp;=&nbsp;String(p);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set_seq:&nbsp;function(s){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;seq&nbsp;=&nbsp;s;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gensym:&nbsp;function(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;result&nbsp;=&nbsp;prefix&nbsp;+&nbsp;seq;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;seq&nbsp;+=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;result;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;};<br />};<br />var&nbsp;seqer&nbsp;=&nbsp;serial_maker();<br />seqer.set_prefix('Q');<br />seqer.set_seq(1000);<br />var&nbsp;unique&nbsp;=&nbsp;seqer.gensym();<br />document.writeln(unique);<br /><br />///////////////&nbsp;Curry<br /><br />Function.method('curry',&nbsp;function(){<br />&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;slice&nbsp;=&nbsp;Array.prototype.slice;<br />&nbsp;&nbsp;&nbsp;&nbsp;args&nbsp;=&nbsp;slice.apply(arguments);<br />&nbsp;&nbsp;&nbsp;&nbsp;that&nbsp;=&nbsp;this;<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;function(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;that.apply(null,&nbsp;args.concat(slice.apply(arguments)));<br />&nbsp;&nbsp;&nbsp;&nbsp;};<br />});<br /><br />var&nbsp;add1&nbsp;=&nbsp;add.curry(1);<br />document.writeln(add1(6));<br /><br />//////////////&nbsp;Memoization<br /><br />//&nbsp;Fibonacci,&nbsp;beform&nbsp;memoization<br />var&nbsp;fibonacci&nbsp;=&nbsp;function(n){<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;n&nbsp;&lt;&nbsp;2&nbsp;?&nbsp;n&nbsp;:&nbsp;fibonacci(n&nbsp;-&nbsp;1)&nbsp;+&nbsp;fibonacci(n&nbsp;-&nbsp;2);<br />};<br /><br />for(var&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;=&nbsp;10;&nbsp;i&nbsp;+=&nbsp;1){<br />&nbsp;&nbsp;&nbsp;&nbsp;document.writeln('//'&nbsp;+&nbsp;i&nbsp;+&nbsp;':&nbsp;'&nbsp;+&nbsp;fibonacci(i));<br />}<br /><br />//&nbsp;after&nbsp;memoization<br />var&nbsp;fibonacci2&nbsp;=&nbsp;function(){<br />&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;memo&nbsp;=&nbsp;[0,&nbsp;1];<br />&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;fib&nbsp;=&nbsp;function(n){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;result&nbsp;=&nbsp;memo[n];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(typeof&nbsp;result&nbsp;!==&nbsp;'number'){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result&nbsp;=&nbsp;fib(n&nbsp;-&nbsp;1)&nbsp;+&nbsp;fib(n&nbsp;-&nbsp;2);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memo[n]&nbsp;=&nbsp;result;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;result;<br />&nbsp;&nbsp;&nbsp;&nbsp;};<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;fib;<br />}();<br />for(var&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;=&nbsp;10;&nbsp;i&nbsp;+=&nbsp;1){<br />&nbsp;&nbsp;&nbsp;&nbsp;document.writeln('//'&nbsp;+&nbsp;i&nbsp;+&nbsp;':&nbsp;'&nbsp;+&nbsp;fibonacci2(i));<br />}<br /><br />var&nbsp;memoizer&nbsp;=&nbsp;function(memo,&nbsp;fundamental){<br />&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;shell&nbsp;=&nbsp;function(n){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;result&nbsp;=&nbsp;memo[n];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(typeof&nbsp;result&nbsp;!==&nbsp;'number'){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result&nbsp;=&nbsp;fundamental(shell,&nbsp;n);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memo[n]&nbsp;=&nbsp;result;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;result;<br />&nbsp;&nbsp;&nbsp;&nbsp;};<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;shell;<br />};<br /><br />var&nbsp;fabonacci3&nbsp;=&nbsp;memoizer([0,1],&nbsp;function(shell,&nbsp;n){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;shell(n&nbsp;-&nbsp;1)&nbsp;+&nbsp;shell(n&nbsp;-&nbsp;2);<br />});<br /><br />var&nbsp;factorial2&nbsp;=&nbsp;memoizer([1,1],&nbsp;function(shell,&nbsp;n){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;n&nbsp;*&nbsp;shell(n&nbsp;-&nbsp;1);<br />});</span></div><br />ch05 继承<br /><br />5.1 伪类<br /><br />吐下槽。"the Function constructor that produces the function object runs some code like this:"被译成了&#8220;Function构造器产生的函数对象会运行类似这样的一些代码：&#8221;。主语都错了。这本书里的错误确实比较多。<br /></div><img src ="http://www.cppblog.com/momoxiao/aggbug/155074.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/momoxiao/" target="_blank">小默</a> 2011-09-04 21:41 <a href="http://www.cppblog.com/momoxiao/archive/2011/09/04/155074.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[django debug toolbar] Caught UnicodeEncodeError while rendering</title><link>http://www.cppblog.com/momoxiao/archive/2011/06/14/148631.html</link><dc:creator>小默</dc:creator><author>小默</author><pubDate>Tue, 14 Jun 2011 07:08:00 GMT</pubDate><guid>http://www.cppblog.com/momoxiao/archive/2011/06/14/148631.html</guid><wfw:comment>http://www.cppblog.com/momoxiao/comments/148631.html</wfw:comment><comments>http://www.cppblog.com/momoxiao/archive/2011/06/14/148631.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/momoxiao/comments/commentRss/148631.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/momoxiao/services/trackbacks/148631.html</trackback:ping><description><![CDATA[<div><div>报错:<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">Caught&nbsp;UnicodeEncodeError&nbsp;</span><span style="color: #0000FF; ">while</span><span style="color: #000000; ">&nbsp;rendering:&nbsp;(</span><span style="color: #000000; ">'</span><span style="color: #000000; ">ascii</span><span style="color: #000000; ">'</span><span style="color: #000000; ">,&nbsp;u</span><span style="color: #000000; ">'</span><span style="color: #000000; ">if&nbsp;not&nbsp;counters:&nbsp;return&nbsp;result_list&nbsp;&nbsp;&nbsp;&nbsp;#\u6570\u636e\u5e93\u91cc\u6ca1\u6709\u65e5\u671fdate\u7684\u8bb0\u5f55</span><span style="color: #000000; ">'</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #000000; ">40</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #000000; ">48</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #000000; ">'</span><span style="color: #000000; ">ordinal&nbsp;not&nbsp;in&nbsp;range(128)</span><span style="color: #000000; ">'</span><span style="color: #000000; ">)</span></div><br />解决:<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">not</span><span style="color: #000000; ">&nbsp;counters:&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;result_list&nbsp;</span><span style="color: #008000; ">#</span><span style="color: #008000; ">数据库里没有日期date的记录</span></div>改成<br /><div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008000; ">#</span><span style="color: #008000; ">数据库里没有日期date的记录</span><span style="color: #008000; "><br /></span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">not</span><span style="color: #000000; ">&nbsp;counters:&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;result_list</span></div></div><div><br />ps,好久没来,CuteEditor都支持chrome了啊:-)</div></div></div><img src ="http://www.cppblog.com/momoxiao/aggbug/148631.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/momoxiao/" target="_blank">小默</a> 2011-06-14 15:08 <a href="http://www.cppblog.com/momoxiao/archive/2011/06/14/148631.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>file_add</title><link>http://www.cppblog.com/momoxiao/archive/2011/03/24/142665.html</link><dc:creator>小默</dc:creator><author>小默</author><pubDate>Thu, 24 Mar 2011 09:58:00 GMT</pubDate><guid>http://www.cppblog.com/momoxiao/archive/2011/03/24/142665.html</guid><wfw:comment>http://www.cppblog.com/momoxiao/comments/142665.html</wfw:comment><comments>http://www.cppblog.com/momoxiao/archive/2011/03/24/142665.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/momoxiao/comments/commentRss/142665.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/momoxiao/services/trackbacks/142665.html</trackback:ping><description><![CDATA[
把一堆文件合并到一个文件中:一堆文件的名字在开头,后面是每个文件.<br>参数:要合并的文件名<br><br><div style="background-color: rgb(238, 238, 238); font-size: 13px; border-left-color: rgb(204, 204, 204); padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000; ">#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">stdio.h</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br><br></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;main(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;argc,&nbsp;</span><span style="color: #0000FF; ">char</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">**</span><span style="color: #000000; ">argv)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;FILE&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">fin,&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">fout;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;i;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;c;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">((fout&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;fopen(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">tmp</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,</span><span style="color: #000000; ">"</span><span style="color: #000000; ">w</span><span style="color: #000000; ">"</span><span style="color: #000000; ">))&nbsp;</span><span style="color: #000000; ">==</span><span style="color: #000000; ">&nbsp;NULL){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">create&nbsp;output&nbsp;file&nbsp;error.\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">(i&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;&nbsp;i&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">&nbsp;argc;&nbsp;i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fputs(argv[i],&nbsp;fout);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fputs(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,&nbsp;fout);<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">(i&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;&nbsp;i&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">&nbsp;argc;&nbsp;i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">((fin&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;fopen(argv[i],</span><span style="color: #000000; ">"</span><span style="color: #000000; ">r</span><span style="color: #000000; ">"</span><span style="color: #000000; ">))&nbsp;</span><span style="color: #000000; ">==</span><span style="color: #000000; ">&nbsp;NULL){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">file&nbsp;not&nbsp;exist&nbsp;-&nbsp;%s\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,&nbsp;argv[i]);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fputs(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">\n\n#############\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,&nbsp;fout);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fputs(argv[i],&nbsp;fout);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fputs(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">\n#############\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,&nbsp;fout);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">while</span><span style="color: #000000; ">((c&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;fgetc(fin))&nbsp;</span><span style="color: #000000; ">!=</span><span style="color: #000000; ">&nbsp;EOF&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fputc(c,&nbsp;fout);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fclose(fin);<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br><br>&nbsp;&nbsp;&nbsp;&nbsp;fclose(fout);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br><br>}</span></div><img src ="http://www.cppblog.com/momoxiao/aggbug/142665.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/momoxiao/" target="_blank">小默</a> 2011-03-24 17:58 <a href="http://www.cppblog.com/momoxiao/archive/2011/03/24/142665.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[zz] File I/O</title><link>http://www.cppblog.com/momoxiao/archive/2011/03/24/142658.html</link><dc:creator>小默</dc:creator><author>小默</author><pubDate>Thu, 24 Mar 2011 09:17:00 GMT</pubDate><guid>http://www.cppblog.com/momoxiao/archive/2011/03/24/142658.html</guid><wfw:comment>http://www.cppblog.com/momoxiao/comments/142658.html</wfw:comment><comments>http://www.cppblog.com/momoxiao/archive/2011/03/24/142658.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/momoxiao/comments/commentRss/142658.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/momoxiao/services/trackbacks/142658.html</trackback:ping><description><![CDATA[<a href="http://www.csie.ntu.edu.tw/~cprog2003/downloads/Notes%20on%20C%20File%20I-O.htm">http://www.csie.ntu.edu.tw/~cprog2003/downloads/Notes%20on%20C%20File%20I-O.htm</a><br><br><div style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: white; background-position: initial initial; background-repeat: initial initial; "><center><h2 style="font: normal normal normal 18pt/normal Arial; color: black; ">File I/O</h2></center><h3 style="font: normal normal normal 14pt/normal Arial; color: black; ">The FILE type</h3><ol><li style="font: normal normal normal 11pt/normal Arial; color: black; ">當在C中想使用檔案時，就需要宣告FILE variable</li><li style="font: normal normal normal 11pt/normal Arial; color: black; ">FILE variable是一個pointer，因它是一個指向檔案現在使用到哪裡的指標。 在比較底層的意義中(close to hardware)，它是一個file descriptor。</li></ol><table class="ebox1" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: black; background-position: initial initial; background-repeat: initial initial; "><tbody><tr><td class="ebox2" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(173, 216, 230); font: normal normal normal 10pt/normal Arial; background-position: initial initial; background-repeat: initial initial; ">Example:<pre>FILE *myfile;
</pre></td></tr></tbody></table><p style="font: normal normal normal 11pt/normal Arial; margin-left: 0.5in; color: black; text-indent: 0.3in; margin-right: 0.5in; ">在C中，實際上是使用Stream I/O的方式來存取資料。也就是說，當打開一個檔案後， OS那邊會將一部分的資料先讀起來在一個暫存的Buffer裡，然後FILE這個pointer就會去指向這個buffer， 每讀取一個字元時，它就會往前移動一個。同樣的，當我們在寫入的時候，當我們完成像是fprintf時， 它也是先寫入這個buffer中，直到這個buffer被flush或是寫出到device中，才會真正的做改變。</p><p style="font: normal normal normal 11pt/normal Arial; margin-left: 0.5in; color: black; text-indent: 0.3in; margin-right: 0.5in; "><img src="http://www.csie.ntu.edu.tw/~cprog2003/downloads/Notes%20on%20C%20File%20I-O.files/stream.gif" width="396" height="242"></p><p style="font: normal normal normal 11pt/normal Arial; margin-left: 0.5in; color: black; text-indent: 0.3in; margin-right: 0.5in; ">這張圖的左邊就是device；右邊就是buffer。<br></p><h3 style="font: normal normal normal 14pt/normal Arial; color: black; ">Associate the variable with a file</h3><ol><li style="font: normal normal normal 11pt/normal Arial; color: black; ">Use fopen()</li><li style="font: normal normal normal 11pt/normal Arial; color: black; ">Specify the file path and the mode</li><li style="font: normal normal normal 11pt/normal Arial; color: black; ">成功的話, fopen會return一個file pointer；否則, return NULL</li></ol><table class="infotable" border="1" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: black; font: normal normal normal 10pt/normal Arial; background-position: initial initial; background-repeat: initial initial; "><tbody><tr><td class="infotable2" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(211, 211, 211); background-position: initial initial; background-repeat: initial initial; ">"r"</td><td class="infotable2" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(211, 211, 211); background-position: initial initial; background-repeat: initial initial; ">open for reading; 假如檔案不存在，則失敗。</td></tr><tr><td class="infotable2" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(211, 211, 211); background-position: initial initial; background-repeat: initial initial; ">"w"</td><td class="infotable2" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(211, 211, 211); background-position: initial initial; background-repeat: initial initial; ">open or create for writing; 假如檔案存在，其現存的內容會被覆蓋。</td></tr><tr><td class="infotable2" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(211, 211, 211); background-position: initial initial; background-repeat: initial initial; ">"a"</td><td class="infotable2" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(211, 211, 211); background-position: initial initial; background-repeat: initial initial; ">open or create for writng; 看w的不同在於，它會接著現存的內容繼續做下去</td></tr><tr><td class="infotable2" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(211, 211, 211); background-position: initial initial; background-repeat: initial initial; ">"r+"</td><td class="infotable2" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(211, 211, 211); background-position: initial initial; background-repeat: initial initial; ">open for reading and writing; 檔案一定要存在</td></tr><tr><td class="infotable2" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(211, 211, 211); background-position: initial initial; background-repeat: initial initial; ">"w+"</td><td class="infotable2" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(211, 211, 211); background-position: initial initial; background-repeat: initial initial; ">open or create for reading and writing; 檔案不存在就開新檔案，存在就覆寫</td></tr><tr><td class="infotable2" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(211, 211, 211); background-position: initial initial; background-repeat: initial initial; ">"a+"</td><td class="infotable2" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(211, 211, 211); background-position: initial initial; background-repeat: initial initial; ">open or create for reading and writing; 不同處同上面a和w的差別</td></tr></tbody></table><br><table class="ebox1" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: black; background-position: initial initial; background-repeat: initial initial; "><tbody><tr><td class="ebox2" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(173, 216, 230); font: normal normal normal 10pt/normal Arial; background-position: initial initial; background-repeat: initial initial; ">FILE *fopen(char *name, char *mode)</td></tr></tbody><tbody><tr><td class="ebox2" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(173, 216, 230); font: normal normal normal 10pt/normal Arial; background-position: initial initial; background-repeat: initial initial; ">Example:<h5>FILE *myfile;</h5><h5>myfile = fopen("input.txt", "r");<br></h5></td></tr></tbody></table><br><h3 style="font: normal normal normal 14pt/normal Arial; color: black; ">Testing for EOF</h3><ol><li style="font: normal normal normal 11pt/normal Arial; color: black; ">EOF是保留字，表示End Of File。</li><li style="font: normal normal normal 11pt/normal Arial; color: black; ">當想要檢查現在的file pointer是否已經只到檔案的結尾時，可以使用feof(file)</li><li style="font: normal normal normal 11pt/normal Arial; color: black; ">當真的已經是EOF時，return 0；否則，return non-zero</li></ol><table class="ebox1" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: black; background-position: initial initial; background-repeat: initial initial; "><tbody><tr><td class="ebox2" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(173, 216, 230); font: normal normal normal 10pt/normal Arial; background-position: initial initial; background-repeat: initial initial; ">Syntax:<h5>int feof( FILE *stream );<br></h5></td></tr><tr><td class="ebox2" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(173, 216, 230); font: normal normal normal 10pt/normal Arial; background-position: initial initial; background-repeat: initial initial; ">Example:&nbsp;<br>if( feof( myfile ) )<br><div align="center">printf("End of file\n");</div></td></tr></tbody></table><h3 style="font: normal normal normal 14pt/normal Arial; color: black; ">Writing / Reading by single character</h3><ol><li style="font: normal normal normal 11pt/normal Arial; color: black; ">To read in or write out text by char, use fgetc() and fputc()</li><li style="font: normal normal normal 11pt/normal Arial; color: black; ">fgetc會return下一個在input stream中的char，若是已經EOF，則return EOF。而為什麼他要return int而不是char，則是因為EOF已經不在char的範圍內(不在0~255，為-1)。</li><li style="font: normal normal normal 11pt/normal Arial; color: black; ">fputc則會return所寫入的char的值；假如發生錯誤的話，return EOF。</li></ol><table class="ebox1" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: black; background-position: initial initial; background-repeat: initial initial; "><tbody><tr><td class="ebox2" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(173, 216, 230); font: normal normal normal 10pt/normal Arial; background-position: initial initial; background-repeat: initial initial; ">Syntax:<h5>int fgetc( FILE *stream );</h5><h5>int fputc( int c, FILE *stream );<br></h5></td></tr><tr><td class="ebox2" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(173, 216, 230); font: normal normal normal 10pt/normal Arial; background-position: initial initial; background-repeat: initial initial; ">Example:&nbsp;<br><pre>FILE *myfile, *myfile2;
int c;
myfile = fopen("in", "r");&gt;
myfile2 = fopen("out", "w");
while( (c=fgetc(myfile)) != EOF)
	fputc(c, myfile2);</pre></td></tr></tbody></table><h3 style="font: normal normal normal 14pt/normal Arial; color: black; ">Writing / Reading by line of text</h3><ol><li style="font: normal normal normal 11pt/normal Arial; color: black; ">To read in or write out text by line, use fgets() and fputs()</li><li style="font: normal normal normal 11pt/normal Arial; color: black; ">fgets會return指向str的char pointer；假若發生錯誤或是遇到EOF時，returns NULL</li><li style="font: normal normal normal 11pt/normal Arial; color: black; ">fputs return 0 on success and EOF on error.</li></ol><table class="ebox1" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: black; background-position: initial initial; background-repeat: initial initial; "><tbody><tr><td class="ebox2" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(173, 216, 230); font: normal normal normal 10pt/normal Arial; background-position: initial initial; background-repeat: initial initial; ">Syntax:<h5>char *fgets(char *str, int size, FILE *stream);</h5><h5>int fputs(const char *str, FILE *stream);<br></h5></td></tr><tr><td class="ebox2" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(173, 216, 230); font: normal normal normal 10pt/normal Arial; background-position: initial initial; background-repeat: initial initial; ">Example:&nbsp;<br><pre>FILE *myfile, *myfile2;
char tmp[80];
myfile = fopen("in", "r");&gt;
myfile2 = fopen("out", "w");
while( (fgets(tmp, 80, myfile)) != NULL)
	fputs(tmp, myfile2);</pre></td></tr></tbody></table><h3 style="font: normal normal normal 14pt/normal Arial; color: black; ">fprintf() and fscanf()</h3><ol><li style="font: normal normal normal 11pt/normal Arial; color: black; ">Work like printf and scanf, except with files</li><li style="font: normal normal normal 11pt/normal Arial; color: black; ">跟上面fgets, fputs不同的是，這兩個function可以做formatted I/O</li></ol><table class="ebox1" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: black; background-position: initial initial; background-repeat: initial initial; "><tbody><tr><td class="ebox2" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(173, 216, 230); font: normal normal normal 10pt/normal Arial; background-position: initial initial; background-repeat: initial initial; ">Examples:<pre>fprintf(outputfile, "My age is %d\n", myAge);
fscanf(inputfile, "%f", &amp;floatVariable);

</pre></td></tr></tbody></table><br><h3 style="font: normal normal normal 14pt/normal Arial; color: black; ">Close the files</h3><ol><li style="font: normal normal normal 11pt/normal Arial; color: black; ">當在一個檔案的工作已經結束後，可以使用fclose()，使之前buffer的資料實際寫入。</li><li style="font: normal normal normal 11pt/normal Arial; color: black; ">因此當在對檔案的寫入結束後，最好還是用fclose將他關掉。</li><li style="font: normal normal normal 11pt/normal Arial; color: black; ">成功的話，return 0；否則，return EOF</li></ol><table class="ebox1" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: black; background-position: initial initial; background-repeat: initial initial; "><tbody><tr><td class="ebox2" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(173, 216, 230); font: normal normal normal 10pt/normal Arial; background-position: initial initial; background-repeat: initial initial; ">Syntax:<h5>int fclose( FILE *stream );<br></h5></td></tr></tbody></table><h3 style="font: normal normal normal 14pt/normal Arial; color: black; ">A sample program</h3>假如你們還是不會用的話 ，可以套用(參考)下面的程式。<table class="ebox1" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: black; background-position: initial initial; background-repeat: initial initial; "><tbody><tr><td class="ebox2" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(173, 216, 230); font: normal normal normal 10pt/normal Arial; background-position: initial initial; background-repeat: initial initial; "><pre>#include <stdio.h>
#define INFILE "input.txt"
//將下面這個學號換成你自己的學號
#define OUTFILE "R92922099"

char *readin(FILE *);

int main() {
    FILE *infile, *outfile;
    char *input;

	/* 打開檔案 */
    if( (infile = fopen(INFILE, "r")) == NULL ) {
        printf("can't open input file\n");
        exit(1);								//假若失敗的話，就離開程式
    }else if( (outfile = fopen(OUTFILE, "w")) == NULL ) {
        printf("can't open output file\n");
        exit(1);								//假若失敗的話，就離開程式
    }
	/* 用剛剛取得的file pointer來讀取檔案的內容的動作 */
    input = readin( infile );
	/*
		將你們如何處理從檔案中所讀到的資料result，
		寫在這裡，或是在這裡呼叫function
	*/

    fclose(infile);
    fclose(outfile);
}

//將檔案中所有的內容都讀取出來，用result指向這個資料，然後return這個pointer做處理
char *readin(FILE *in) {
    char tmp[80];
    char *result="";
    while( fgets( tmp, 80, in)!=NULL ) {
        asprintf(&amp;result, "%s%s", result, tmp);
    }
    return result;
}
</stdio.h></pre></td></tr></tbody></table><br><hr><div class="navg" style="font: normal normal normal 10pt/normal Arial; "><a href="http://www.mattjustice.com/cnotes/index.html" style="color: navy; text-decoration: none; ">TOC</a>&nbsp;|&nbsp;<a href="http://www.mattjustice.com/cnotes/c_cmdline.html" style="color: navy; text-decoration: none; ">&lt;&lt; Back</a></div></div><img src ="http://www.cppblog.com/momoxiao/aggbug/142658.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/momoxiao/" target="_blank">小默</a> 2011-03-24 17:17 <a href="http://www.cppblog.com/momoxiao/archive/2011/03/24/142658.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>function declaration isn't a prototype</title><link>http://www.cppblog.com/momoxiao/archive/2011/01/27/139392.html</link><dc:creator>小默</dc:creator><author>小默</author><pubDate>Wed, 26 Jan 2011 20:28:00 GMT</pubDate><guid>http://www.cppblog.com/momoxiao/archive/2011/01/27/139392.html</guid><wfw:comment>http://www.cppblog.com/momoxiao/comments/139392.html</wfw:comment><comments>http://www.cppblog.com/momoxiao/archive/2011/01/27/139392.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/momoxiao/comments/commentRss/139392.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/momoxiao/services/trackbacks/139392.html</trackback:ping><description><![CDATA[<p>Q: function declaration isn't a prototype<br>A:<br><a href="http://hi.baidu.com/%D4%BC%D0%DE%D1%C7ing/blog/item/d5f86a0f598b47c27acbe138.html">http://hi.baidu.com/%D4%BC%D0%DE%D1%C7ing/blog/item/d5f86a0f598b47c27acbe138.html</a></p>
<p>static void cut_mode(void)<br>如果写成static void cut_mode()<br>就会有警告function declaration isn't a prototype</p>
<img src ="http://www.cppblog.com/momoxiao/aggbug/139392.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/momoxiao/" target="_blank">小默</a> 2011-01-27 04:28 <a href="http://www.cppblog.com/momoxiao/archive/2011/01/27/139392.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>getopt getopt_long</title><link>http://www.cppblog.com/momoxiao/archive/2011/01/26/139346.html</link><dc:creator>小默</dc:creator><author>小默</author><pubDate>Wed, 26 Jan 2011 06:34:00 GMT</pubDate><guid>http://www.cppblog.com/momoxiao/archive/2011/01/26/139346.html</guid><wfw:comment>http://www.cppblog.com/momoxiao/comments/139346.html</wfw:comment><comments>http://www.cppblog.com/momoxiao/archive/2011/01/26/139346.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/momoxiao/comments/commentRss/139346.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/momoxiao/services/trackbacks/139346.html</trackback:ping><description><![CDATA[<p>getopt<br>--man<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #include &lt;unistd.h&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int getopt(int argc, char * const argv[],<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; const char *optstring);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; extern char *optarg;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; extern int optind, opterr, optopt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #include &lt;getopt.h&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int getopt_long(int argc, char * const argv[],<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; const char *optstring,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; const struct option *longopts, int *longindex);</p>
<p>--ex</p>
<p>&nbsp;23 struct option longopts[] = {<br>&nbsp;24&nbsp;&nbsp;&nbsp;&nbsp; {"icmp", no_argument, NULL, 'i'},<br>&nbsp;25&nbsp;&nbsp;&nbsp;&nbsp; {"help", no_argument, NULL, 'h'},<br>&nbsp;26&nbsp;&nbsp;&nbsp;&nbsp; {"drop", required_argument, NULL, 'd'},<br>&nbsp;27&nbsp;&nbsp;&nbsp;&nbsp; {0,0,0,0}<br>&nbsp;28 };</p>
<p>&nbsp;51&nbsp;&nbsp;&nbsp;&nbsp; while((c = getopt_long(argc, argv, "hid:", longopts, NULL))!=-1){<br>&nbsp;52&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; switch(c){<br>&nbsp;53&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 'i':{<br>&nbsp;54&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; own-&gt;icmp_off = 1;<br>&nbsp;55&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br>&nbsp;56&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;57&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 'd':{<br>&nbsp;58&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; own-&gt;drop_ip = inet_addr(optarg);<br>&nbsp;59&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br>&nbsp;60&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;61&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 'h':{<br>&nbsp;62&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print_help(argv[0]);<br>&nbsp;63&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return -1;<br>&nbsp;64&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;65&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default:<br>&nbsp;66&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br>&nbsp;67&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>--</p>
<p>作用：<br>解析输入的参数。</p>
<p>参数：<br>argc和argv是传入main的参数个数 和 参数列表。<br>"hid:"是-h -i -d 这样的选项；d后有冒号，表示-d选项有参数跟着。<br>longopts是struct option *，列出-h -i -d对应的长选项格式--help --icmp --drop</p>
<p>相关外部变量：<br>extern char *optarg; - 当前选项的参数字串</p>
<img src ="http://www.cppblog.com/momoxiao/aggbug/139346.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/momoxiao/" target="_blank">小默</a> 2011-01-26 14:34 <a href="http://www.cppblog.com/momoxiao/archive/2011/01/26/139346.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C 语言楼</title><link>http://www.cppblog.com/momoxiao/archive/2010/11/10/133206.html</link><dc:creator>小默</dc:creator><author>小默</author><pubDate>Wed, 10 Nov 2010 07:28:00 GMT</pubDate><guid>http://www.cppblog.com/momoxiao/archive/2010/11/10/133206.html</guid><wfw:comment>http://www.cppblog.com/momoxiao/comments/133206.html</wfw:comment><comments>http://www.cppblog.com/momoxiao/archive/2010/11/10/133206.html#Feedback</comments><slash:comments>14</slash:comments><wfw:commentRss>http://www.cppblog.com/momoxiao/comments/commentRss/133206.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/momoxiao/services/trackbacks/133206.html</trackback:ping><description><![CDATA[RT<img src ="http://www.cppblog.com/momoxiao/aggbug/133206.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/momoxiao/" target="_blank">小默</a> 2010-11-10 15:28 <a href="http://www.cppblog.com/momoxiao/archive/2010/11/10/133206.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>python 分割 合并 字符串</title><link>http://www.cppblog.com/momoxiao/archive/2010/11/01/131976.html</link><dc:creator>小默</dc:creator><author>小默</author><pubDate>Mon, 01 Nov 2010 05:51:00 GMT</pubDate><guid>http://www.cppblog.com/momoxiao/archive/2010/11/01/131976.html</guid><wfw:comment>http://www.cppblog.com/momoxiao/comments/131976.html</wfw:comment><comments>http://www.cppblog.com/momoxiao/archive/2010/11/01/131976.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/momoxiao/comments/commentRss/131976.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/momoxiao/services/trackbacks/131976.html</trackback:ping><description><![CDATA[ip = '127.0.0.1'

# 分割
items = ip.split('.')

# 合并
sep = ' '
item = sep.join(items)<img src ="http://www.cppblog.com/momoxiao/aggbug/131976.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/momoxiao/" target="_blank">小默</a> 2010-11-01 13:51 <a href="http://www.cppblog.com/momoxiao/archive/2010/11/01/131976.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【转】CSS display 属性</title><link>http://www.cppblog.com/momoxiao/archive/2010/09/21/127224.html</link><dc:creator>小默</dc:creator><author>小默</author><pubDate>Tue, 21 Sep 2010 02:28:00 GMT</pubDate><guid>http://www.cppblog.com/momoxiao/archive/2010/09/21/127224.html</guid><wfw:comment>http://www.cppblog.com/momoxiao/comments/127224.html</wfw:comment><comments>http://www.cppblog.com/momoxiao/archive/2010/09/21/127224.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/momoxiao/comments/commentRss/127224.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/momoxiao/services/trackbacks/127224.html</trackback:ping><description><![CDATA[<table class="dataintable" style="font-family: Arial,Helvetica,sans-serif; margin-top: 10px; border-collapse: collapse; border: 1px solid #888888; width: 606px;">
    <tbody>
        <tr>
            <th style="vertical-align: baseline; padding: 5px 15px 5px 5px; background-color: #cccccc; border: 1px solid #888888; text-align: left;">值</th>
            <th style="vertical-align: baseline; padding: 5px 15px 5px 5px; background-color: #cccccc; border: 1px solid #888888; text-align: left;">描述</th>
        </tr>
        <tr>
            <td style="vertical-align: text-top; padding: 5px 15px 5px 5px; background-color: #efefef; border: 1px solid #aaaaaa;">none</td>
            <td style="vertical-align: text-top; padding: 5px 15px 5px 5px; background-color: #efefef; border: 1px solid #aaaaaa;">此元素不会被显示。</td>
        </tr>
        <tr>
            <td style="vertical-align: text-top; padding: 5px 15px 5px 5px; background-color: #efefef; border: 1px solid #aaaaaa;">block</td>
            <td style="vertical-align: text-top; padding: 5px 15px 5px 5px; background-color: #efefef; border: 1px solid #aaaaaa;">此元素将显示为块级元素，此元素前后会带有换行符。</td>
        </tr>
        <tr>
            <td style="vertical-align: text-top; padding: 5px 15px 5px 5px; background-color: #efefef; border: 1px solid #aaaaaa;">inline</td>
            <td style="vertical-align: text-top; padding: 5px 15px 5px 5px; background-color: #efefef; border: 1px solid #aaaaaa;">默认。此元素会被显示为内联元素，元素前后没有换行符。</td>
        </tr>
        <tr>
            <td style="vertical-align: text-top; padding: 5px 15px 5px 5px; background-color: #efefef; border: 1px solid #aaaaaa;">inline-block</td>
            <td style="vertical-align: text-top; padding: 5px 15px 5px 5px; background-color: #efefef; border: 1px solid #aaaaaa;">行内块元素。（CSS2.1 新增的值）</td>
        </tr>
        <tr>
            <td style="vertical-align: text-top; padding: 5px 15px 5px 5px; background-color: #efefef; border: 1px solid #aaaaaa;">list-item</td>
            <td style="vertical-align: text-top; padding: 5px 15px 5px 5px; background-color: #efefef; border: 1px solid #aaaaaa;">此元素会作为列表显示。</td>
        </tr>
        <tr>
            <td style="vertical-align: text-top; padding: 5px 15px 5px 5px; background-color: #efefef; border: 1px solid #aaaaaa;">run-in</td>
            <td style="vertical-align: text-top; padding: 5px 15px 5px 5px; background-color: #efefef; border: 1px solid #aaaaaa;">此元素会根据上下文作为块级元素或内联元素显示。</td>
        </tr>
        <tr>
            <td style="vertical-align: text-top; padding: 5px 15px 5px 5px; background-color: #efefef; border: 1px solid #aaaaaa;">compact</td>
            <td style="vertical-align: text-top; padding: 5px 15px 5px 5px; background-color: #efefef; border: 1px solid #aaaaaa;">CSS 中有值 compact，不过由于缺乏广泛支持，已经从 CSS2.1 中删除。</td>
        </tr>
        <tr>
            <td style="vertical-align: text-top; padding: 5px 15px 5px 5px; background-color: #efefef; border: 1px solid #aaaaaa;">marker</td>
            <td style="vertical-align: text-top; padding: 5px 15px 5px 5px; background-color: #efefef; border: 1px solid #aaaaaa;">CSS 中有值 marker，不过由于缺乏广泛支持，已经从 CSS2.1 中删除。</td>
        </tr>
        <tr>
            <td style="vertical-align: text-top; padding: 5px 15px 5px 5px; background-color: #efefef; border: 1px solid #aaaaaa;">table</td>
            <td style="vertical-align: text-top; padding: 5px 15px 5px 5px; background-color: #efefef; border: 1px solid #aaaaaa;">此元素会作为块级表格来显示（类似 &lt;table&gt;），表格前后带有换行符。</td>
        </tr>
        <tr>
            <td style="vertical-align: text-top; padding: 5px 15px 5px 5px; background-color: #efefef; border: 1px solid #aaaaaa;">inline-table</td>
            <td style="vertical-align: text-top; padding: 5px 15px 5px 5px; background-color: #efefef; border: 1px solid #aaaaaa;">此元素会作为内联表格来显示（类似 &lt;table&gt;），表格前后没有换行符。</td>
        </tr>
        <tr>
            <td style="vertical-align: text-top; padding: 5px 15px 5px 5px; background-color: #efefef; border: 1px solid #aaaaaa;">table-row-group</td>
            <td style="vertical-align: text-top; padding: 5px 15px 5px 5px; background-color: #efefef; border: 1px solid #aaaaaa;">此元素会作为一个或多个行的分组来显示（类似 &lt;tbody&gt;）。</td>
        </tr>
        <tr>
            <td style="vertical-align: text-top; padding: 5px 15px 5px 5px; background-color: #efefef; border: 1px solid #aaaaaa;">table-header-group</td>
            <td style="vertical-align: text-top; padding: 5px 15px 5px 5px; background-color: #efefef; border: 1px solid #aaaaaa;">此元素会作为一个或多个行的分组来显示（类似 &lt;thead&gt;）。</td>
        </tr>
        <tr>
            <td style="vertical-align: text-top; padding: 5px 15px 5px 5px; background-color: #efefef; border: 1px solid #aaaaaa;">table-footer-group</td>
            <td style="vertical-align: text-top; padding: 5px 15px 5px 5px; background-color: #efefef; border: 1px solid #aaaaaa;">此元素会作为一个或多个行的分组来显示（类似 &lt;tfoot&gt;）。</td>
        </tr>
        <tr>
            <td style="vertical-align: text-top; padding: 5px 15px 5px 5px; background-color: #efefef; border: 1px solid #aaaaaa;">table-row</td>
            <td style="vertical-align: text-top; padding: 5px 15px 5px 5px; background-color: #efefef; border: 1px solid #aaaaaa;">此元素会作为一个表格行显示（类似 &lt;tr&gt;）。</td>
        </tr>
        <tr>
            <td style="vertical-align: text-top; padding: 5px 15px 5px 5px; background-color: #efefef; border: 1px solid #aaaaaa;">table-column-group</td>
            <td style="vertical-align: text-top; padding: 5px 15px 5px 5px; background-color: #efefef; border: 1px solid #aaaaaa;">此元素会作为一个或多个列的分组来显示（类似 &lt;colgroup&gt;）。</td>
        </tr>
        <tr>
            <td style="vertical-align: text-top; padding: 5px 15px 5px 5px; background-color: #efefef; border: 1px solid #aaaaaa;">table-column</td>
            <td style="vertical-align: text-top; padding: 5px 15px 5px 5px; background-color: #efefef; border: 1px solid #aaaaaa;">此元素会作为一个单元格列显示（类似 &lt;col&gt;）</td>
        </tr>
        <tr>
            <td style="vertical-align: text-top; padding: 5px 15px 5px 5px; background-color: #efefef; border: 1px solid #aaaaaa;">table-cell</td>
            <td style="vertical-align: text-top; padding: 5px 15px 5px 5px; background-color: #efefef; border: 1px solid #aaaaaa;">此元素会作为一个表格单元格显示（类似 &lt;td&gt; 和 &lt;th&gt;）</td>
        </tr>
        <tr>
            <td style="vertical-align: text-top; padding: 5px 15px 5px 5px; background-color: #efefef; border: 1px solid #aaaaaa;">table-caption</td>
            <td style="vertical-align: text-top; padding: 5px 15px 5px 5px; background-color: #efefef; border: 1px solid #aaaaaa;">此元素会作为一个表格标题显示（类似 &lt;caption&gt;）</td>
        </tr>
        <tr>
            <td style="vertical-align: text-top; padding: 5px 15px 5px 5px; background-color: #efefef; border: 1px solid #aaaaaa;">inherit</td>
            <td style="vertical-align: text-top; padding: 5px 15px 5px 5px; background-color: #efefef; border: 1px solid #aaaaaa;">规定应该从父元素继承 display 属性的值。</td>
        </tr>
    </tbody>
</table>
<br><img src ="http://www.cppblog.com/momoxiao/aggbug/127224.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/momoxiao/" target="_blank">小默</a> 2010-09-21 10:28 <a href="http://www.cppblog.com/momoxiao/archive/2010/09/21/127224.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>TypeError: 'tuple' object does not support item assignment</title><link>http://www.cppblog.com/momoxiao/archive/2010/08/23/124482.html</link><dc:creator>小默</dc:creator><author>小默</author><pubDate>Mon, 23 Aug 2010 15:18:00 GMT</pubDate><guid>http://www.cppblog.com/momoxiao/archive/2010/08/23/124482.html</guid><wfw:comment>http://www.cppblog.com/momoxiao/comments/124482.html</wfw:comment><comments>http://www.cppblog.com/momoxiao/archive/2010/08/23/124482.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/momoxiao/comments/commentRss/124482.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/momoxiao/services/trackbacks/124482.html</trackback:ping><description><![CDATA[于是..............<img height=20 src="http://www.cppblog.com/Emoticons/QQ/09.gif" width=20 border=0><br><br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">def</span><span style="COLOR: #000000">&nbsp;SetValue(self,&nbsp;row,&nbsp;col,&nbsp;value):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data_list&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;list(self.data)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;i&nbsp;</span><span style="COLOR: #0000ff">in</span><span style="COLOR: #000000">&nbsp;range(len(data_list)):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data_list[i]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;list(data_list[i])<br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data_list[row][col]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;value<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.data&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;tuple(data_list)</span></div>
<img src ="http://www.cppblog.com/momoxiao/aggbug/124482.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/momoxiao/" target="_blank">小默</a> 2010-08-23 23:18 <a href="http://www.cppblog.com/momoxiao/archive/2010/08/23/124482.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>python pass</title><link>http://www.cppblog.com/momoxiao/archive/2010/08/23/124425.html</link><dc:creator>小默</dc:creator><author>小默</author><pubDate>Mon, 23 Aug 2010 08:30:00 GMT</pubDate><guid>http://www.cppblog.com/momoxiao/archive/2010/08/23/124425.html</guid><wfw:comment>http://www.cppblog.com/momoxiao/comments/124425.html</wfw:comment><comments>http://www.cppblog.com/momoxiao/archive/2010/08/23/124425.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/momoxiao/comments/commentRss/124425.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/momoxiao/services/trackbacks/124425.html</trackback:ping><description><![CDATA[<span class=Apple-style-span style="WORD-SPACING: 0px; FONT: medium Simsun; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate; orphans: 2; widows: 2; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><span class=Apple-style-span style="FONT-SIZE: 12px; COLOR: rgb(51,51,51); FONT-FAMILY: 宋体, Tahoma, Arial; webkit-border-horizontal-spacing: 2px; webkit-border-vertical-spacing: 2px">
<p>pass语句什么也不做，一般作为占位符或者创建占位程序，pass语句不会执行任何操作，比如：</p>
<p>while False:</p>
<p>pass</p>
<p>pass通常用来创建一个最简单的类：</p>
<p>class MyEmptyClass:</p>
<p>pass</p>
<p>pass在软件设计阶段也经常用来作为TODO，提醒实现相应的实现，比如：</p>
<p>def initlog(*args):</p>
<p>pass #please implement this</span></span></p>
<img src ="http://www.cppblog.com/momoxiao/aggbug/124425.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/momoxiao/" target="_blank">小默</a> 2010-08-23 16:30 <a href="http://www.cppblog.com/momoxiao/archive/2010/08/23/124425.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【转】请教个思路关于用wx.Grid操作数据库</title><link>http://www.cppblog.com/momoxiao/archive/2010/08/23/124401.html</link><dc:creator>小默</dc:creator><author>小默</author><pubDate>Mon, 23 Aug 2010 05:16:00 GMT</pubDate><guid>http://www.cppblog.com/momoxiao/archive/2010/08/23/124401.html</guid><wfw:comment>http://www.cppblog.com/momoxiao/comments/124401.html</wfw:comment><comments>http://www.cppblog.com/momoxiao/archive/2010/08/23/124401.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/momoxiao/comments/commentRss/124401.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/momoxiao/services/trackbacks/124401.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 用Grid读取操作数据库添加，修改数据一般都用什么方法？要求可以再Grid上修改数据，修改后可以保存到数据库有没有个操作数据库的实际例子谢谢==============使用wx.grid.PyGridTableBase, 然后自己定义SetValue, 在里面实现你的数据库操作, 就可以在修改grid的时候, 同时更新数据库.添加和删除行需要自己定义事件, 事件的触发可以是button或者是con...&nbsp;&nbsp;<a href='http://www.cppblog.com/momoxiao/archive/2010/08/23/124401.html'>阅读全文</a><img src ="http://www.cppblog.com/momoxiao/aggbug/124401.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/momoxiao/" target="_blank">小默</a> 2010-08-23 13:16 <a href="http://www.cppblog.com/momoxiao/archive/2010/08/23/124401.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>去除代码前行号的小工具</title><link>http://www.cppblog.com/momoxiao/archive/2010/08/22/124324.html</link><dc:creator>小默</dc:creator><author>小默</author><pubDate>Sun, 22 Aug 2010 14:13:00 GMT</pubDate><guid>http://www.cppblog.com/momoxiao/archive/2010/08/22/124324.html</guid><wfw:comment>http://www.cppblog.com/momoxiao/comments/124324.html</wfw:comment><comments>http://www.cppblog.com/momoxiao/archive/2010/08/22/124324.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/momoxiao/comments/commentRss/124324.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/momoxiao/services/trackbacks/124324.html</trackback:ping><description><![CDATA[<a href="http://www.cnblogs.com/yanxy/archive/2010/02/19/yanxyfirstpython.html"><u><font color="#0000ff">http://www.cnblogs.com/yanxy/archive/2010/02/19/yanxyfirstpython.html</font></u></a><br><br>==================<br><br>网上看的例子,记3点:<br>1. &nbsp;u''<br>2. self.textBox.GetValue()<br>&nbsp;&nbsp;&nbsp; self.textBox.SetValue()<br>3. singleStr&nbsp;<span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;singleStr[i:]&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">#</span><span style="color: #008000;">&nbsp;留后面的内容</span><br><br>
<div style="padding: 4px 5px 4px 4px; font-size: 13px; border-left-color: #cccccc; width: 98%; background-color: #eeeeee;"><span style="color: #008000;">#</span><span style="color: #008000;">&nbsp;-*-&nbsp;coding:utf-8&nbsp;-*-</span><span style="color: #008000;"><br>#</span><span style="color: #008000;">&nbsp;去除代码前行号的小工具</span><span style="color: #008000;"><br>#<br></span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;wx<br><br></span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;MainWindow(wx.Frame):<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">def</span><span style="color: #000000;">&nbsp;</span><span style="color: #800080;">__init__</span><span style="color: #000000;">(self,&nbsp;parent,&nbsp;id):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wx.Frame.</span><span style="color: #800080;">__init__</span><span style="color: #000000;">(self,&nbsp;parent,&nbsp;id,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;u</span><span style="color: #800000;">'</span><span style="color: #800000;">去除代码前行号的小工具</span><span style="color: #800000;">'</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.textBox&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;wx.TextCtrl(self,&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;style&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;wx.TE_MULTILINE,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;size&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;(</span><span style="color: #000000;">600</span><span style="color: #000000;">,</span><span style="color: #000000;">600</span><span style="color: #000000;">))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.butOK&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;wx.Button(self,&nbsp;label&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;u</span><span style="color: #800000;">'</span><span style="color: #800000;">去除行号</span><span style="color: #800000;">'</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.butLeft&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;wx.Button(self,&nbsp;label&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;u</span><span style="color: #800000;">'</span><span style="color: #800000;">去除左侧第一个字符</span><span style="color: #800000;">'</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.Bind(wx.EVT_BUTTON,&nbsp;self.CutLineNum,&nbsp;self.butOK)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.Bind(wx.EVT_BUTTON,&nbsp;self.CutLeftChar,&nbsp;self.butLeft)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.Bind(wx.EVT_CLOSE,&nbsp;self.OnCloseWindow)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.sizer&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;wx.BoxSizer(wx.HORIZONTAL)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.sizer.Add(self.textBox,&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">,&nbsp;wx.EXPAND)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.sizer.Add(self.butOK)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.sizer.Add(self.butLeft)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.SetSizer(self.sizer)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.SetAutoLayout(</span><span style="color: #000000;">1</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.sizer.Fit(self)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.Show(True)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">def</span><span style="color: #000000;">&nbsp;OnCloseWindow(self,&nbsp;event):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.Destroy()<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">def</span><span style="color: #000000;">&nbsp;CutLineNum(self,&nbsp;event):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;multiStr&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;unicode(self.textBox.GetValue()).splitlines(</span><span style="color: #000000;">1</span><span style="color: #000000;">)&nbsp;</span><span style="color: #008000;">#</span><span style="color: #008000;">!!!获取文本框中的数据!!!</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;outStr&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;u</span><span style="color: #800000;">''</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;singleStr&nbsp;</span><span style="color: #0000ff;">in</span><span style="color: #000000;">&nbsp;multiStr:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;singleStr&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;singleStr.lstrip()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;0<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;charStr&nbsp;</span><span style="color: #0000ff;">in</span><span style="color: #000000;">&nbsp;singleStr:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;charStr.isdigit():<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i&nbsp;</span><span style="color: #000000;">+=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">elif</span><span style="color: #000000;">&nbsp;i&nbsp;</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;0:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;singleStr&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;singleStr[i:]&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">#</span><span style="color: #008000;">&nbsp;除去数字,留后面的内容</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">break</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">break</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;outStr&nbsp;</span><span style="color: #000000;">+=</span><span style="color: #000000;">&nbsp;singleStr<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.textBox.SetValue(outStr)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">def</span><span style="color: #000000;">&nbsp;CutLeftChar(self,&nbsp;event):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;outStr&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;u</span><span style="color: #800000;">''</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;multiStr&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;unicode(self.textBox.GetValue()).splitlines(</span><span style="color: #000000;">1</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;singleStr&nbsp;</span><span style="color: #0000ff;">in</span><span style="color: #000000;">&nbsp;multiStr:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;singleStr&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;singleStr[</span><span style="color: #000000;">1</span><span style="color: #000000;">:]<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;outStr&nbsp;</span><span style="color: #000000;">+=</span><span style="color: #000000;">&nbsp;singleStr<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.textBox.SetValue(outStr)<br><br></span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;</span><span style="color: #800080;">__name__</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">'</span><span style="color: #800000;">__main__</span><span style="color: #800000;">'</span><span style="color: #000000;">:<br>&nbsp;&nbsp;&nbsp;&nbsp;app&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;wx.PySimpleApp()<br>&nbsp;&nbsp;&nbsp;&nbsp;frame&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;MainWindow(parent&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;None,&nbsp;id&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;app.MainLoop()<br></span><span style="color: #0000ff;">del</span><span style="color: #000000;">&nbsp;app<br></span></div><img src ="http://www.cppblog.com/momoxiao/aggbug/124324.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/momoxiao/" target="_blank">小默</a> 2010-08-22 22:13 <a href="http://www.cppblog.com/momoxiao/archive/2010/08/22/124324.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【转】Python print函数用法，print 格式化输出</title><link>http://www.cppblog.com/momoxiao/archive/2010/08/18/123896.html</link><dc:creator>小默</dc:creator><author>小默</author><pubDate>Wed, 18 Aug 2010 15:36:00 GMT</pubDate><guid>http://www.cppblog.com/momoxiao/archive/2010/08/18/123896.html</guid><wfw:comment>http://www.cppblog.com/momoxiao/comments/123896.html</wfw:comment><comments>http://www.cppblog.com/momoxiao/archive/2010/08/18/123896.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/momoxiao/comments/commentRss/123896.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/momoxiao/services/trackbacks/123896.html</trackback:ping><description><![CDATA[
<a href="http://www.pythonclub.org/python-basic/print?do=show"><u><font color="#0000ff">http://www.pythonclub.org/python-basic/print?do=show</font></u></a><br>===========<br><span  style="WORD-SPACING: 0px; FONT: medium Simsun; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate; orphans: 2; widows: 2; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><span  style="FONT-SIZE: 13px; COLOR: rgb(51,51,51); LINE-HEIGHT: 19px; FONT-FAMILY: Verdana, 'Lucida Grande', Lucida, Helvetica, Arial, sans-serif; TEXT-ALIGN: justify">
<div class="level1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 0px 3px; PADDING-TOP: 0px">
<p style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 1em; PADDING-TOP: 0px">使用print输出各型的</p>
<ol style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; LIST-STYLE-IMAGE: none; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 1em 3.5em; COLOR: rgb(99,140,156); LINE-HEIGHT: 1.5em; PADDING-TOP: 0px; LIST-STYLE-TYPE: decimal">
    <li class="level1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">
    <div class="li" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(51,51,51); PADDING-TOP: 0px">字符串</div>
    </li>
    <li class="level1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">
    <div class="li" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(51,51,51); PADDING-TOP: 0px">整数</div>
    </li>
    <li class="level1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">
    <div class="li" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(51,51,51); PADDING-TOP: 0px">浮点数</div>
    </li>
    <li class="level1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">
    <div class="li" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(51,51,51); PADDING-TOP: 0px">出度及精度控制</div>
    </li>
</ol>
<pre class="code python" style="BORDER-RIGHT: rgb(204,204,204) 1px dashed; PADDING-RIGHT: 0.5em; BORDER-TOP: rgb(204,204,204) 1px dashed; OVERFLOW-Y: auto; PADDING-LEFT: 0.5em; FONT-SIZE: 12px; OVERFLOW-X: auto; PADDING-BOTTOM: 0.5em; MARGIN: 0px 0px 1em; BORDER-LEFT: rgb(204,204,204) 1px dashed; WIDTH: 437px; COLOR: rgb(51,51,51); PADDING-TOP: 0.5em; BORDER-BOTTOM: rgb(204,204,204) 1px dashed; BACKGROUND-COLOR: rgb(247,249,250)">strHello = <span class="st0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(255,0,0); PADDING-TOP: 0px">'Hello Python'</span>
<span class="kw1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(177,177,0); PADDING-TOP: 0px">print</span> strHello
<span class="co1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(128,128,128); PADDING-TOP: 0px; FONT-STYLE: italic">#输出结果：Hello Python</span>
<span class="co1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(128,128,128); PADDING-TOP: 0px; FONT-STYLE: italic">#直接出字符串</span></pre>
</div>
<h2 style="CLEAR: left; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: 22px; BORDER-LEFT-COLOR: rgb(204,204,204); PADDING-BOTTOM: 0px; MARGIN: 0px 0px 1em 20px; COLOR: rgb(51,51,51); BORDER-TOP-COLOR: rgb(204,204,204); PADDING-TOP: 0.5em; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BORDER-RIGHT-COLOR: rgb(204,204,204)"><a id="格式化输出整数" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(51,51,51)! important; PADDING-TOP: 0px; TEXT-DECORATION: none! important" name="格式化输出整数">1.格式化输出整数</a></h2>
<div class="level2" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 0px 23px; PADDING-TOP: 0px">
<p style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 1em; PADDING-TOP: 0px">python print也支持参数格式化，与C言的printf似，</p>
<pre class="code python" style="BORDER-RIGHT: rgb(204,204,204) 1px dashed; PADDING-RIGHT: 0.5em; BORDER-TOP: rgb(204,204,204) 1px dashed; OVERFLOW-Y: auto; PADDING-LEFT: 0.5em; FONT-SIZE: 12px; OVERFLOW-X: auto; PADDING-BOTTOM: 0.5em; MARGIN: 0px 0px 1em; BORDER-LEFT: rgb(204,204,204) 1px dashed; WIDTH: 703px; COLOR: rgb(51,51,51); PADDING-TOP: 0.5em; BORDER-BOTTOM: rgb(204,204,204) 1px dashed; BACKGROUND-COLOR: rgb(247,249,250)">strHello = <span class="st0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(255,0,0); PADDING-TOP: 0px">"the length of (%s) is %d"</span> <span class="sy0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(102,204,102); PADDING-TOP: 0px">%</span><span class="br0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(102,204,102); PADDING-TOP: 0px">(</span><span class="st0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(255,0,0); PADDING-TOP: 0px">'Hello World'</span>,<span class="kw2" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(0,0,0); PADDING-TOP: 0px">len</span><span class="br0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(102,204,102); PADDING-TOP: 0px">(</span><span class="st0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(255,0,0); PADDING-TOP: 0px">'Hello World'</span><span class="br0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(102,204,102); PADDING-TOP: 0px">)</span><span class="br0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(102,204,102); PADDING-TOP: 0px">)</span>
<span class="kw1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(177,177,0); PADDING-TOP: 0px">print</span> strHello
<span class="co1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(128,128,128); PADDING-TOP: 0px; FONT-STYLE: italic">#输出果：the length of (Hello World) is 11</span></pre>
</div>
<h2 style="CLEAR: left; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: 22px; BORDER-LEFT-COLOR: rgb(204,204,204); PADDING-BOTTOM: 0px; MARGIN: 0px 0px 1em 20px; COLOR: rgb(51,51,51); BORDER-TOP-COLOR: rgb(204,204,204); PADDING-TOP: 0.5em; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BORDER-RIGHT-COLOR: rgb(204,204,204)"><a id="格式化输出16制整数" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(51,51,51)! important; PADDING-TOP: 0px; TEXT-DECORATION: none! important" name="格式化输出16制整数">2.格式化输出16制整数</a></h2>
<div class="level2" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 0px 23px; PADDING-TOP: 0px">
<pre class="code python" style="BORDER-RIGHT: rgb(204,204,204) 1px dashed; PADDING-RIGHT: 0.5em; BORDER-TOP: rgb(204,204,204) 1px dashed; OVERFLOW-Y: auto; PADDING-LEFT: 0.5em; FONT-SIZE: 12px; OVERFLOW-X: auto; PADDING-BOTTOM: 0.5em; MARGIN: 0px 0px 1em; BORDER-LEFT: rgb(204,204,204) 1px dashed; WIDTH: 703px; COLOR: rgb(51,51,51); PADDING-TOP: 0.5em; BORDER-BOTTOM: rgb(204,204,204) 1px dashed; BACKGROUND-COLOR: rgb(247,249,250)">nHex = 0x20
<span class="co1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(128,128,128); PADDING-TOP: 0px; FONT-STYLE: italic">#%x --- hex 十六进制</span>
<span class="co1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(128,128,128); PADDING-TOP: 0px; FONT-STYLE: italic">#%d --- dec 十进制</span>
<span class="co1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(128,128,128); PADDING-TOP: 0px; FONT-STYLE: italic">#%d --- oct 八进制</span>
&nbsp;
<span class="kw1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(177,177,0); PADDING-TOP: 0px">print</span> <span class="st0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(255,0,0); PADDING-TOP: 0px">"nHex = %x,nDec = %d,nOct = %o"</span> <span class="sy0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(102,204,102); PADDING-TOP: 0px">%</span><span class="br0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(102,204,102); PADDING-TOP: 0px">(</span>nHex,nHex,nHex<span class="br0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(102,204,102); PADDING-TOP: 0px">)</span>
&nbsp;
<span class="co1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(128,128,128); PADDING-TOP: 0px; FONT-STYLE: italic">#输出结果：nHex = 20,nDec = 32,nOct = 40</span>
<span class="co1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(128,128,128); PADDING-TOP: 0px; FONT-STYLE: italic">#使用整数的各个制打印同一个数</span></pre>
</div>
<h2 style="CLEAR: left; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: 22px; BORDER-LEFT-COLOR: rgb(204,204,204); PADDING-BOTTOM: 0px; MARGIN: 0px 0px 1em 20px; COLOR: rgb(51,51,51); BORDER-TOP-COLOR: rgb(204,204,204); PADDING-TOP: 0.5em; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BORDER-RIGHT-COLOR: rgb(204,204,204)"><a id="格式化输出浮点数_float" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(51,51,51)! important; PADDING-TOP: 0px; TEXT-DECORATION: none! important" name="格式化输出浮点数_float">3.格式化输出浮点数(float)</a></h2>
<div class="level2" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 0px 23px; PADDING-TOP: 0px">
<pre class="code python" style="BORDER-RIGHT: rgb(204,204,204) 1px dashed; PADDING-RIGHT: 0.5em; BORDER-TOP: rgb(204,204,204) 1px dashed; OVERFLOW-Y: auto; PADDING-LEFT: 0.5em; FONT-SIZE: 12px; OVERFLOW-X: auto; PADDING-BOTTOM: 0.5em; MARGIN: 0px 0px 1em; BORDER-LEFT: rgb(204,204,204) 1px dashed; WIDTH: 703px; COLOR: rgb(51,51,51); PADDING-TOP: 0.5em; BORDER-BOTTOM: rgb(204,204,204) 1px dashed; BACKGROUND-COLOR: rgb(247,249,250)"><span class="kw1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(177,177,0); PADDING-TOP: 0px">import</span> <span class="kw3" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(0,0,102); PADDING-TOP: 0px">math</span>
<span class="co1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(128,128,128); PADDING-TOP: 0px; FONT-STYLE: italic">#default</span>
<span class="kw1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(177,177,0); PADDING-TOP: 0px">print</span> <span class="st0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(255,0,0); PADDING-TOP: 0px">"PI = %f"</span> <span class="sy0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(102,204,102); PADDING-TOP: 0px">%</span> <span class="kw3" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(0,0,102); PADDING-TOP: 0px">math</span>.<span class="me1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(0,102,0); PADDING-TOP: 0px">pi</span>
<span class="co1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(128,128,128); PADDING-TOP: 0px; FONT-STYLE: italic">#width = 10,precise = 3,align = left</span>
<span class="kw1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(177,177,0); PADDING-TOP: 0px">print</span> <span class="st0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(255,0,0); PADDING-TOP: 0px">"PI = %10.3f"</span> <span class="sy0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(102,204,102); PADDING-TOP: 0px">%</span> <span class="kw3" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(0,0,102); PADDING-TOP: 0px">math</span>.<span class="me1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(0,102,0); PADDING-TOP: 0px">pi</span>
<span class="co1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(128,128,128); PADDING-TOP: 0px; FONT-STYLE: italic">#width = 10,precise = 3,align = rigth</span>
<span class="kw1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(177,177,0); PADDING-TOP: 0px">print</span> <span class="st0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(255,0,0); PADDING-TOP: 0px">"PI = %-10.3f"</span> <span class="sy0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(102,204,102); PADDING-TOP: 0px">%</span> <span class="kw3" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(0,0,102); PADDING-TOP: 0px">math</span>.<span class="me1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(0,102,0); PADDING-TOP: 0px">pi</span>
<span class="co1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(128,128,128); PADDING-TOP: 0px; FONT-STYLE: italic">#前面填充字符</span>
<span class="kw1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(177,177,0); PADDING-TOP: 0px">print</span> <span class="st0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(255,0,0); PADDING-TOP: 0px">"PI = %06d"</span> <span class="sy0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(102,204,102); PADDING-TOP: 0px">%</span> <span class="kw2" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(0,0,0); PADDING-TOP: 0px">int</span><span class="br0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(102,204,102); PADDING-TOP: 0px">(</span><span class="kw3" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(0,0,102); PADDING-TOP: 0px">math</span>.<span class="me1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(0,102,0); PADDING-TOP: 0px">pi</span><span class="br0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(102,204,102); PADDING-TOP: 0px">)</span>
&nbsp;
<span class="co1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(128,128,128); PADDING-TOP: 0px; FONT-STYLE: italic">#输出结果</span>
<span class="co1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(128,128,128); PADDING-TOP: 0px; FONT-STYLE: italic">#PI = 3.141593</span>
<span class="co1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(128,128,128); PADDING-TOP: 0px; FONT-STYLE: italic">#PI =      3.142</span>
<span class="co1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(128,128,128); PADDING-TOP: 0px; FONT-STYLE: italic">#PI = 3.142</span>
<span class="co1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(128,128,128); PADDING-TOP: 0px; FONT-STYLE: italic">#PI = 000003</span>
<span class="co1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(128,128,128); PADDING-TOP: 0px; FONT-STYLE: italic">#浮点数的格式化，精度、度和</span></pre>
</div>
<h2 style="CLEAR: left; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: 22px; BORDER-LEFT-COLOR: rgb(204,204,204); PADDING-BOTTOM: 0px; MARGIN: 0px 0px 1em 20px; COLOR: rgb(51,51,51); BORDER-TOP-COLOR: rgb(204,204,204); PADDING-TOP: 0.5em; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BORDER-RIGHT-COLOR: rgb(204,204,204)"><a id="格式化输出字符串_string" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(51,51,51)! important; PADDING-TOP: 0px; TEXT-DECORATION: none! important" name="格式化输出字符串_string">4.格式化输出字符串(string)</a></h2>
<div class="level2" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 0px 23px; PADDING-TOP: 0px">
<pre class="code python" style="BORDER-RIGHT: rgb(204,204,204) 1px dashed; PADDING-RIGHT: 0.5em; BORDER-TOP: rgb(204,204,204) 1px dashed; OVERFLOW-Y: auto; PADDING-LEFT: 0.5em; FONT-SIZE: 12px; OVERFLOW-X: auto; PADDING-BOTTOM: 0.5em; MARGIN: 0px 0px 1em; BORDER-LEFT: rgb(204,204,204) 1px dashed; WIDTH: 703px; COLOR: rgb(51,51,51); PADDING-TOP: 0.5em; BORDER-BOTTOM: rgb(204,204,204) 1px dashed; BACKGROUND-COLOR: rgb(247,249,250)"><span class="co1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(128,128,128); PADDING-TOP: 0px; FONT-STYLE: italic">#precise = 3</span>
<span class="kw1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(177,177,0); PADDING-TOP: 0px">print</span> <span class="st0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(255,0,0); PADDING-TOP: 0px">"%.3s "</span> <span class="sy0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(102,204,102); PADDING-TOP: 0px">%</span> <span class="br0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(102,204,102); PADDING-TOP: 0px">(</span><span class="st0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(255,0,0); PADDING-TOP: 0px">"jcodeer"</span><span class="br0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(102,204,102); PADDING-TOP: 0px">)</span>
<span class="co1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(128,128,128); PADDING-TOP: 0px; FONT-STYLE: italic">#precise = 4</span>
<span class="kw1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(177,177,0); PADDING-TOP: 0px">print</span> <span class="st0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(255,0,0); PADDING-TOP: 0px">"%.*s"</span> <span class="sy0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(102,204,102); PADDING-TOP: 0px">%</span> <span class="br0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(102,204,102); PADDING-TOP: 0px">(</span><span class="nu0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(204,102,204); PADDING-TOP: 0px">4</span>,<span class="st0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(255,0,0); PADDING-TOP: 0px">"jcodeer"</span><span class="br0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(102,204,102); PADDING-TOP: 0px">)</span>
<span class="co1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(128,128,128); PADDING-TOP: 0px; FONT-STYLE: italic">#width = 10,precise = 3</span>
<span class="kw1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(177,177,0); PADDING-TOP: 0px">print</span> <span class="st0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(255,0,0); PADDING-TOP: 0px">"%10.3s"</span> <span class="sy0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(102,204,102); PADDING-TOP: 0px">%</span> <span class="br0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(102,204,102); PADDING-TOP: 0px">(</span><span class="st0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(255,0,0); PADDING-TOP: 0px">"jcodeer"</span><span class="br0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(102,204,102); PADDING-TOP: 0px">)</span>
<span class="co1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(128,128,128); PADDING-TOP: 0px; FONT-STYLE: italic">#输出结果：</span>
<span class="co1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(128,128,128); PADDING-TOP: 0px; FONT-STYLE: italic">#jco</span>
<span class="co1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(128,128,128); PADDING-TOP: 0px; FONT-STYLE: italic">#jcod</span>
<span class="co1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(128,128,128); PADDING-TOP: 0px; FONT-STYLE: italic">#       jco</span>
<span class="co1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(128,128,128); PADDING-TOP: 0px; FONT-STYLE: italic">#同于字符串也存在精度、度和。</span></pre>
</div>
<h2 style="CLEAR: left; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: 22px; BORDER-LEFT-COLOR: rgb(204,204,204); PADDING-BOTTOM: 0px; MARGIN: 0px 0px 1em 20px; COLOR: rgb(51,51,51); BORDER-TOP-COLOR: rgb(204,204,204); PADDING-TOP: 0.5em; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BORDER-RIGHT-COLOR: rgb(204,204,204)"><a id="输出列表_list" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(51,51,51)! important; PADDING-TOP: 0px; TEXT-DECORATION: none! important" name="输出列表_list">5.输出列表(list)</a></h2>
<div class="level2" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 0px 23px; PADDING-TOP: 0px">
<pre class="code python" style="BORDER-RIGHT: rgb(204,204,204) 1px dashed; PADDING-RIGHT: 0.5em; BORDER-TOP: rgb(204,204,204) 1px dashed; OVERFLOW-Y: auto; PADDING-LEFT: 0.5em; FONT-SIZE: 12px; OVERFLOW-X: auto; PADDING-BOTTOM: 0.5em; MARGIN: 0px 0px 1em; BORDER-LEFT: rgb(204,204,204) 1px dashed; WIDTH: 703px; COLOR: rgb(51,51,51); PADDING-TOP: 0.5em; BORDER-BOTTOM: rgb(204,204,204) 1px dashed; BACKGROUND-COLOR: rgb(247,249,250)">l = <span class="br0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(102,204,102); PADDING-TOP: 0px">[</span><span class="nu0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(204,102,204); PADDING-TOP: 0px">1</span>,<span class="nu0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(204,102,204); PADDING-TOP: 0px">2</span>,<span class="nu0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(204,102,204); PADDING-TOP: 0px">3</span>,<span class="nu0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(204,102,204); PADDING-TOP: 0px">4</span>,<span class="st0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(255,0,0); PADDING-TOP: 0px">'jcodeer'</span><span class="br0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(102,204,102); PADDING-TOP: 0px">]</span>
<span class="kw1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(177,177,0); PADDING-TOP: 0px">print</span> l
<span class="co1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(128,128,128); PADDING-TOP: 0px; FONT-STYLE: italic">#输出结果：[1, 2, 3, 4, 'jcodeer']</span>
<span class="co1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(128,128,128); PADDING-TOP: 0px; FONT-STYLE: italic">#于list直接打印即可</span>
<span class="st0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(255,0,0); PADDING-TOP: 0px">''</span><span class="st0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(255,0,0); PADDING-TOP: 0px">'6.出字典(dictionary)'</span><span class="st0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(255,0,0); PADDING-TOP: 0px">''</span>
d = <span class="br0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(102,204,102); PADDING-TOP: 0px">{</span><span class="nu0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(204,102,204); PADDING-TOP: 0px">1</span>:<span class="st0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(255,0,0); PADDING-TOP: 0px">'A'</span>,<span class="nu0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(204,102,204); PADDING-TOP: 0px">2</span>:<span class="st0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(255,0,0); PADDING-TOP: 0px">'B'</span>,<span class="nu0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(204,102,204); PADDING-TOP: 0px">3</span>:<span class="st0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(255,0,0); PADDING-TOP: 0px">'C'</span>,<span class="nu0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(204,102,204); PADDING-TOP: 0px">4</span>:<span class="st0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(255,0,0); PADDING-TOP: 0px">'D'</span><span class="br0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(102,204,102); PADDING-TOP: 0px">}</span>
<span class="kw1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(177,177,0); PADDING-TOP: 0px">print</span> d
<span class="co1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(128,128,128); PADDING-TOP: 0px; FONT-STYLE: italic">#输出结果：{1: 'A', 2: 'B', 3: 'C', 4: 'D'}</span>
<span class="co1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(128,128,128); PADDING-TOP: 0px; FONT-STYLE: italic">#同python也是支持dictionary出的</span></pre>
</div>
<h2 style="CLEAR: left; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: 22px; BORDER-LEFT-COLOR: rgb(204,204,204); PADDING-BOTTOM: 0px; MARGIN: 0px 0px 1em 20px; COLOR: rgb(51,51,51); BORDER-TOP-COLOR: rgb(204,204,204); PADDING-TOP: 0.5em; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BORDER-RIGHT-COLOR: rgb(204,204,204)"><a id="python_print自动换行" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(51,51,51)! important; PADDING-TOP: 0px; TEXT-DECORATION: none! important" name="python_print自动换行">6.python print自动换行</a></h2>
<div class="level2" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 0px 23px; PADDING-TOP: 0px">
<p style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 1em; PADDING-TOP: 0px">print 会自动在行末加上回车,如果不需回车，只需在print语句的结尾添加一个逗号&#8221;,&#8220;，就可以改变它的行为。</p>
<pre class="code python" style="BORDER-RIGHT: rgb(204,204,204) 1px dashed; PADDING-RIGHT: 0.5em; BORDER-TOP: rgb(204,204,204) 1px dashed; OVERFLOW-Y: auto; PADDING-LEFT: 0.5em; FONT-SIZE: 12px; OVERFLOW-X: auto; PADDING-BOTTOM: 0.5em; MARGIN: 0px 0px 1em; BORDER-LEFT: rgb(204,204,204) 1px dashed; WIDTH: 703px; COLOR: rgb(51,51,51); PADDING-TOP: 0.5em; BORDER-BOTTOM: rgb(204,204,204) 1px dashed; BACKGROUND-COLOR: rgb(247,249,250)"><span class="kw1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(177,177,0); PADDING-TOP: 0px">for</span> i <span class="kw1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(177,177,0); PADDING-TOP: 0px">in</span> <span class="kw2" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(0,0,0); PADDING-TOP: 0px">range</span><span class="br0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(102,204,102); PADDING-TOP: 0px">(</span>0,5<span class="br0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(102,204,102); PADDING-TOP: 0px">)</span>:
<span class="kw1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(177,177,0); PADDING-TOP: 0px">print</span> i,</pre>
<p style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 1em; PADDING-TOP: 0px">或直接使用下面的函数进行输出：</p>
<pre class="code python" style="BORDER-RIGHT: rgb(204,204,204) 1px dashed; PADDING-RIGHT: 0.5em; BORDER-TOP: rgb(204,204,204) 1px dashed; OVERFLOW-Y: auto; PADDING-LEFT: 0.5em; FONT-SIZE: 12px; OVERFLOW-X: auto; PADDING-BOTTOM: 0.5em; MARGIN: 0px 0px 1em; BORDER-LEFT: rgb(204,204,204) 1px dashed; WIDTH: 703px; COLOR: rgb(51,51,51); PADDING-TOP: 0.5em; BORDER-BOTTOM: rgb(204,204,204) 1px dashed; BACKGROUND-COLOR: rgb(247,249,250)"><span class="kw3" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(0,0,102); PADDING-TOP: 0px">sys</span>.<span class="me1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(0,102,0); PADDING-TOP: 0px">stdout</span>.<span class="me1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(0,102,0); PADDING-TOP: 0px">write</span><span class="br0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(102,204,102); PADDING-TOP: 0px">(</span><span class="st0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(255,0,0); PADDING-TOP: 0px">"输出的字串"</span><span class="br0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: rgb(102,204,102); PADDING-TOP: 0px">)</span></pre>
</div>
</span></span><img src ="http://www.cppblog.com/momoxiao/aggbug/123896.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/momoxiao/" target="_blank">小默</a> 2010-08-18 23:36 <a href="http://www.cppblog.com/momoxiao/archive/2010/08/18/123896.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>工作中用到的两个小脚本 shift_domain monitor</title><link>http://www.cppblog.com/momoxiao/archive/2010/08/18/123879.html</link><dc:creator>小默</dc:creator><author>小默</author><pubDate>Wed, 18 Aug 2010 12:56:00 GMT</pubDate><guid>http://www.cppblog.com/momoxiao/archive/2010/08/18/123879.html</guid><wfw:comment>http://www.cppblog.com/momoxiao/comments/123879.html</wfw:comment><comments>http://www.cppblog.com/momoxiao/archive/2010/08/18/123879.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/momoxiao/comments/commentRss/123879.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/momoxiao/services/trackbacks/123879.html</trackback:ping><description><![CDATA[
正则表达式匹配, 提出url<br>
<div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left-color: rgb(204, 204, 204); width: 98%; word-break: break-all; padding-top: 4px; background-color: rgb(238, 238, 238); "><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top"><span style="COLOR: #008000">#</span><span style="COLOR: #008000">&nbsp;-*-&nbsp;coding:utf-8&nbsp;-*-</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top">#</span><span style="COLOR: #008000">&nbsp;file&nbsp;:&nbsp;shift_domain.py</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top">#<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top"></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;re<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top"></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;sys<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top"></span><span style="COLOR: #0000ff">def</span><span style="COLOR: #000000">&nbsp;DealWithDomain(s):<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;r&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;re.compile(r</span><span style="COLOR: #800000">'''</span><span style="COLOR: #800000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top">(?&lt;=class="w2"&gt;)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;匹配class="w2"&gt;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top">\S*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;匹配domain<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top">(?=&lt;/LI&gt;)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top"></span><span style="COLOR: #800000">'''</span><span style="COLOR: #000000">,&nbsp;re.X</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000">re.I)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">#</span><span style="COLOR: #008000">&nbsp;忽略注释，忽略大小写</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top"></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;r.findall(s)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top"></span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;len(sys.argv)&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">:<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;sour&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;raw_input(</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">请输入要处理的文件路径</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top"></span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000">:<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;sour&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;sys.argv[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">]<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top">file&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;open(sour)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top">s&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;file.readlines()<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top">file.close()<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top"></span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;line&nbsp;</span><span style="COLOR: #0000ff">in</span><span style="COLOR: #000000">&nbsp;s:<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;url&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;DealWithDomain(line)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;len(url)&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">:<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">print</span><span style="COLOR: #000000">&nbsp;url[0]</span></div>
<br>呃, 这个...但是配合Ctrl+W真的很强大<img height="20" src="http://www.cppblog.com/Emoticons/QQ/14.gif" width="20" border="0"><br>
<div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left-color: rgb(204, 204, 204); width: 98%; word-break: break-all; padding-top: 4px; background-color: rgb(238, 238, 238); "><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top"><span style="COLOR: #008000">#</span><span style="COLOR: #008000">&nbsp;-*-&nbsp;coding:utf-8&nbsp;-*-</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top">#<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top"></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top"></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;webbrowser<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top">a&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">53681</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top">b&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">53689</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top"></span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;eventid&nbsp;</span><span style="COLOR: #0000ff">in</span><span style="COLOR: #000000">&nbsp;range(a,b):<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;tmp&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800000">"</span><span style="COLOR: #800000">http://******/detail/</span><span style="COLOR: #800000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;str(eventid)&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #800000">"</span><span style="COLOR: #800000">/</span><span style="COLOR: #800000">"</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;webbrowser.open(tmp)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top"></span></div><img src ="http://www.cppblog.com/momoxiao/aggbug/123879.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/momoxiao/" target="_blank">小默</a> 2010-08-18 20:56 <a href="http://www.cppblog.com/momoxiao/archive/2010/08/18/123879.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Python正则表达式</title><link>http://www.cppblog.com/momoxiao/archive/2010/08/08/122626.html</link><dc:creator>小默</dc:creator><author>小默</author><pubDate>Sun, 08 Aug 2010 03:13:00 GMT</pubDate><guid>http://www.cppblog.com/momoxiao/archive/2010/08/08/122626.html</guid><wfw:comment>http://www.cppblog.com/momoxiao/comments/122626.html</wfw:comment><comments>http://www.cppblog.com/momoxiao/archive/2010/08/08/122626.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/momoxiao/comments/commentRss/122626.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/momoxiao/services/trackbacks/122626.html</trackback:ping><description><![CDATA[
<img alt="" src="http://www.cppblog.com/images/cppblog_com/momoxiao/zhengzebiaoda.JPG"><br><img alt="" src="http://www.cppblog.com/images/cppblog_com/momoxiao/zhengzebiaoda2.JPG" height="220" width="833"><br><img src ="http://www.cppblog.com/momoxiao/aggbug/122626.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/momoxiao/" target="_blank">小默</a> 2010-08-08 11:13 <a href="http://www.cppblog.com/momoxiao/archive/2010/08/08/122626.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【转】关于JSP页面出现空页面或部分页面</title><link>http://www.cppblog.com/momoxiao/archive/2010/07/29/121627.html</link><dc:creator>小默</dc:creator><author>小默</author><pubDate>Thu, 29 Jul 2010 10:35:00 GMT</pubDate><guid>http://www.cppblog.com/momoxiao/archive/2010/07/29/121627.html</guid><wfw:comment>http://www.cppblog.com/momoxiao/comments/121627.html</wfw:comment><comments>http://www.cppblog.com/momoxiao/archive/2010/07/29/121627.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/momoxiao/comments/commentRss/121627.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/momoxiao/services/trackbacks/121627.html</trackback:ping><description><![CDATA[
原文：<a href="http://www.blogjava.net/xiaomage234/archive/2008/10/21/235710.html"><u><font color="#0000ff">http://www.blogjava.net/xiaomage234/archive/2008/10/21/235710.html</font></u></a><br>===================<br><span  style="WORD-SPACING: 0px; FONT: medium Simsun; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate; orphans: 2; widows: 2; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><span  style="FONT-SIZE: 12px; FONT-FAMILY: Verdana, Geneva, Arial, Helvetica, sans-serif; TEXT-ALIGN: justify"><span style="FONT-SIZE: 12pt"><span style="FONT-SIZE: 8pt"><span style="FONT-SIZE: 12pt"><span style="FONT-SIZE: 10pt"><strong>现象</strong>：<br>1，内容区显示空白或部分页面；<br>2，&#8220;查看源文件&#8221;，里面代码不完整；<br><br><strong>解决方式</strong>：<br>1，在jsp第一行添加 "&lt;%@ page buffer="108kb" autoFlush="true" %&gt;"，如果还是不行，增加108kb这个数值，一直到页面出现jsp抛错的堆栈信息。<br>2，根据堆栈信息解决此问题。<br><br><strong>原因以及本质</strong>：<br></span></span></span></span>
<p style="FONT-SIZE: 13px">&nbsp;</p>
<div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left-color: rgb(204, 204, 204); width: 548px; word-break: break-all; padding-top: 4px; background-color: rgb(238, 238, 238); "><span style="FONT-SIZE: 10pt"><img alt="" src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top"></span><span style="FONT-SIZE: 10pt"><span style="COLOR: rgb(0,0,0)">服务端的输出缓冲区&nbsp;<br><img alt="" src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top">缺省情况下:服务端要输出到客户端的内容,不直接写到客户端,而是先写到一个输出缓冲区中.只有在下面三中情况下，才会把该缓冲区的内容输出到客户端上：&nbsp;<br><img alt="" src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top"><br><img alt="" src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top"><br><img alt="" src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top"></span><span style="COLOR: rgb(0,0,0)">1</span></span><span style="FONT-SIZE: 10pt"><span style="COLOR: rgb(0,0,0)">)该jsp网页已完成信息的输出&nbsp;<br><img alt="" src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top"><br><img alt="" src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top"></span><span style="COLOR: rgb(0,0,0)">2</span></span><span style="FONT-SIZE: 10pt"><span style="COLOR: rgb(0,0,0)">)输出缓冲区已满&nbsp;<br><img alt="" src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top"><br><img alt="" src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top"></span><span style="COLOR: rgb(0,0,0)">3</span></span><span style="FONT-SIZE: 10pt"><span style="COLOR: rgb(0,0,0)">)jsp中调用了out.flush()或response.flushbuffer()&nbsp;<br><img alt="" src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top"><br><img alt="" src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top">输出缓冲区的大小可以用:&nbsp;或response.setbuffersize()设置,如下：&nbsp;<br><img alt="" src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top"><br><img alt="" src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top"></span><span style="COLOR: rgb(0,0,0)">1</span><span style="COLOR: rgb(0,0,0)">)设置输出缓冲区的大小为1kb。&nbsp;或response.setbuffersize(</span><span style="COLOR: rgb(0,0,0)">1</span></span><span style="FONT-SIZE: 10pt"><span style="COLOR: rgb(0,0,0)">);&nbsp;<br><img alt="" src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top"><br><img alt="" src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top"></span><span style="COLOR: rgb(0,0,0)">2</span><span style="COLOR: rgb(0,0,0)">)设置输出缓冲区的大小为0，即不缓冲。&nbsp;或response.setbuffersize(</span><span style="COLOR: rgb(0,0,0)">0</span></span><span style="COLOR: rgb(0,0,0)"><span style="FONT-SIZE: 10pt">);&nbsp;<br><img alt="" src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top"><br><img alt="" src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top">用response.getbuffersize()或out.getbuffersize()可取的输出缓冲区的大小,单位为字节.&nbsp;用response.iscommitted()可检查看服务端是否已将数据输出到客户端.&nbsp;如果返回值是true则已将数据输出到客户端,是false则还没有.&nbsp;<br><img alt="" src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top"></span></span></div>
<br><span style="FONT-SIZE: 12pt"><span style="FONT-SIZE: 10pt">1，jsp代码有bug[或者缺少相关配置文件，相关依赖类]；<br>2，当页面buffer用得差不多的时候，这时候如果有运行时异常，tomcat处理不了时就会将运行时异常信息输出到jsp页面的buffer区，导致有部分内容还停留在buffer，而此时页面在还未完成网页输出,缓冲区未满，也未调用flush的情况下不会继续处理后面的网页信息输出，tomcat将此时已经处理的部分代码返回给浏览器去解析，由于内容不完整，导致了出现 空页面或部分页面。<br>3，可以调用 &lt;%=out.getRemaining() %&gt; 方法查看jsp的buffer剩余量。<br><br>=============<br>完全看不懂啊，悲剧。。。</span></span></span></span><img src ="http://www.cppblog.com/momoxiao/aggbug/121627.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/momoxiao/" target="_blank">小默</a> 2010-07-29 18:35 <a href="http://www.cppblog.com/momoxiao/archive/2010/07/29/121627.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【转】请教Shell中的冒号“:”的作用</title><link>http://www.cppblog.com/momoxiao/archive/2010/07/03/119270.html</link><dc:creator>小默</dc:creator><author>小默</author><pubDate>Sat, 03 Jul 2010 15:19:00 GMT</pubDate><guid>http://www.cppblog.com/momoxiao/archive/2010/07/03/119270.html</guid><wfw:comment>http://www.cppblog.com/momoxiao/comments/119270.html</wfw:comment><comments>http://www.cppblog.com/momoxiao/archive/2010/07/03/119270.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/momoxiao/comments/commentRss/119270.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/momoxiao/services/trackbacks/119270.html</trackback:ping><description><![CDATA[
<a href="http://bbs.chinaunix.net/viewthread.php?tid=1024441"><u><font color="#0000ff">http://bbs.chinaunix.net/viewthread.php?tid=1024441</font></u></a><br><br>====================================<br><span  style="WORD-SPACING: 0px; FONT: medium Simsun; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate; orphans: 2; widows: 2; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><span  style="FONT-SIZE: 12px; LINE-HEIGHT: 36px; FONT-FAMILY: song, Verdana; BORDER-COLLAPSE: collapse; TEXT-ALIGN: left"><span style="BACKGROUND-COLOR: #ffff00"><font size="3">:$(var:=value)的作用：</font></span><br><a style="FONT-WEIGHT: 800; MARGIN-LEFT: 20px; COLOR: rgb(0,0,0); TEXT-DECORATION: none; WORD-WRAP: break-word" href="http://www.cppblog.com/momoxiao/admin/space.php?uid=20633156" target="_blank"><font style="WORD-WRAP: break-word" face="Fixedsys">神奇天鹅</font></a></span></span><br><span  style="WORD-SPACING: 0px; FONT: medium Simsun; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate; orphans: 2; widows: 2; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><span  style="FONT-SIZE: 14px; LINE-HEIGHT: 22px; FONT-FAMILY: song, Verdana; BORDER-COLLAPSE: collapse; TEXT-ALIGN: left">
<div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left-color: rgb(204, 204, 204); width: 98%; word-break: break-all; padding-top: 4px; background-color: rgb(238, 238, 238); "><span style="COLOR: #000000">QUOTE:<br>原帖由&nbsp;xuleicsu&nbsp;于&nbsp;</span><span style="COLOR: #000000">2007</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">12</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">15</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">37</span><span style="COLOR: #000000">&nbsp;发表&nbsp;<br>再问一句啊：<br>${var:</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">value}&nbsp;这是什么意思呢？<br>${}&nbsp;结构是干什么用的啊<br><br>==================<br><br>如果var设置了一个值&nbsp;&nbsp;就保留<br>如果没值&nbsp;&nbsp;设置成value</span></div>
<br><span style="BACKGROUND-COLOR: #ffff00">类似的一个例子：</span><br><span  style="WORD-SPACING: 0px; FONT: medium Simsun; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate; orphans: 2; widows: 2; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><span  style="FONT-SIZE: 12px; LINE-HEIGHT: 36px; FONT-FAMILY: song, Verdana; BORDER-COLLAPSE: collapse; TEXT-ALIGN: left"><a style="FONT-WEIGHT: 800; MARGIN-LEFT: 20px; COLOR: rgb(0,0,0); TEXT-DECORATION: none; WORD-WRAP: break-word" href="http://www.cppblog.com/momoxiao/admin/space.php?uid=8857340" target="_blank"><font style="WORD-WRAP: break-word" face="Fixedsys">airuwan</font></a></span></span><br>
<div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left-color: rgb(204, 204, 204); width: 98%; word-break: break-all; padding-top: 4px; background-color: rgb(238, 238, 238); "><span style="COLOR: #000000">:&nbsp;${HA_DIR:</span><span style="COLOR: #000000">=/</span><span style="COLOR: #000000">etc</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">ha.d}<br>:&nbsp;${HA_RCDIR:</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">$HA_DIR</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">rc.d}<br>:&nbsp;${HA_CONFDIR</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">$HA_DIR</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">conf}<br>:&nbsp;${HA_CF:</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">$HA_DIR</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">ha.cf}<br>:&nbsp;${HA_VARLIB:</span><span style="COLOR: #000000">=/</span><span style="COLOR: #000000">var</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">lib</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">heartbeat}<br>:&nbsp;${HA_RSCTMP:</span><span style="COLOR: #000000">=/</span><span style="COLOR: #000000">var</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">run</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">heartbeat</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">rsctmp}<br>:&nbsp;${HA_FIFO:</span><span style="COLOR: #000000">=/</span><span style="COLOR: #000000">var</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">lib</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">heartbeat</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">fifo}<br>:&nbsp;${HA_BIN:</span><span style="COLOR: #000000">=/</span><span style="COLOR: #000000">usr</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">lib</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">heartbeat}<br>:&nbsp;${HA_DATEFMT:</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%Y/%m/%d_%T&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">}<br>:&nbsp;${HA_DEBUGLOG:</span><span style="COLOR: #000000">=/</span><span style="COLOR: #000000">dev</span><span style="COLOR: #000000">/</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">}<br>:&nbsp;${HA_RESOURCEDIR:</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">$HA_DIR</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">resource.d}<br>:&nbsp;${HA_DOCDIR:</span><span style="COLOR: #000000">=/</span><span style="COLOR: #000000">usr</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">share</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">doc</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">heartbeat}<br>:&nbsp;${__SCRIPT_NAME:</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">`basename&nbsp;$</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">`}<br>:&nbsp;${HA_LOGTAG:</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">$__SCRIPT_NAME[$$]}<br>:&nbsp;${HA_VARRUN:</span><span style="COLOR: #000000">=/</span><span style="COLOR: #000000">var</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">run</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">}<br>:&nbsp;${HA_VARLOCK:</span><span style="COLOR: #000000">=/</span><span style="COLOR: #000000">var</span><span style="COLOR: #000000">/</span><span style="COLOR: #0000ff">lock</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">subsys</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">}<br><br>export&nbsp;HA_DIR&nbsp;HA_RCDIR&nbsp;HA_FIFO&nbsp;HA_BIN&nbsp;<br>export&nbsp;HA_DEBUGLOG&nbsp;HA_LOGFILE&nbsp;HA_LOGFACILITY<br>export&nbsp;HA_DATEFMT&nbsp;HA_RESOURCEDIR&nbsp;HA_DOCDIR<br><br>这就是它的作用，多谢楼上解惑</span></div>
</span></span><img src ="http://www.cppblog.com/momoxiao/aggbug/119270.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/momoxiao/" target="_blank">小默</a> 2010-07-03 23:19 <a href="http://www.cppblog.com/momoxiao/archive/2010/07/03/119270.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【转】shell 十三問  TODO</title><link>http://www.cppblog.com/momoxiao/archive/2010/07/03/119269.html</link><dc:creator>小默</dc:creator><author>小默</author><pubDate>Sat, 03 Jul 2010 15:04:00 GMT</pubDate><guid>http://www.cppblog.com/momoxiao/archive/2010/07/03/119269.html</guid><wfw:comment>http://www.cppblog.com/momoxiao/comments/119269.html</wfw:comment><comments>http://www.cppblog.com/momoxiao/archive/2010/07/03/119269.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/momoxiao/comments/commentRss/119269.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/momoxiao/services/trackbacks/119269.html</trackback:ping><description><![CDATA[
<a href="http://bbs.chinaunix.net/viewthread.php?tid=218853&amp;extra=&amp;page=1">http://bbs.chinaunix.net/viewthread.php?tid=218853&amp;extra=&amp;page=1</a><img src ="http://www.cppblog.com/momoxiao/aggbug/119269.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/momoxiao/" target="_blank">小默</a> 2010-07-03 23:04 <a href="http://www.cppblog.com/momoxiao/archive/2010/07/03/119269.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>shellcode网马%u替换</title><link>http://www.cppblog.com/momoxiao/archive/2010/06/17/118090.html</link><dc:creator>小默</dc:creator><author>小默</author><pubDate>Thu, 17 Jun 2010 09:04:00 GMT</pubDate><guid>http://www.cppblog.com/momoxiao/archive/2010/06/17/118090.html</guid><wfw:comment>http://www.cppblog.com/momoxiao/comments/118090.html</wfw:comment><comments>http://www.cppblog.com/momoxiao/archive/2010/06/17/118090.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/momoxiao/comments/commentRss/118090.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/momoxiao/services/trackbacks/118090.html</trackback:ping><description><![CDATA[参照教程: 瑞星卡卡技术论坛&nbsp;&nbsp; networkedition<br>==================<br>shellcode 替换的识别：<br>1.比较懒的一种方法，看代码中哪个字符串出现的频率非常高<br>2.一般在网马中会给出替换字串，<br>如：<br>
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">unescape(ttt.replace(</span><span style="color: #000000;">/</span><span style="color: #000000;">gfds</span><span style="color: #000000;">/</span><span style="color: #000000;">g,</span><span style="color: #000000;">"</span><span style="color: #000000;">\x25\x75</span><span style="color: #000000;">"</span><span style="color: #000000;">))</span></div>
替换字串为gfds<br>\x25\x75就是%u<br>=================<br>替换%u后若两次esc解码没有解出网马地址，可能含有密钥<br>一般含有最多的字串是密钥<br><br>   <img src ="http://www.cppblog.com/momoxiao/aggbug/118090.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/momoxiao/" target="_blank">小默</a> 2010-06-17 17:04 <a href="http://www.cppblog.com/momoxiao/archive/2010/06/17/118090.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>source insight </title><link>http://www.cppblog.com/momoxiao/archive/2010/06/15/117970.html</link><dc:creator>小默</dc:creator><author>小默</author><pubDate>Tue, 15 Jun 2010 07:57:00 GMT</pubDate><guid>http://www.cppblog.com/momoxiao/archive/2010/06/15/117970.html</guid><wfw:comment>http://www.cppblog.com/momoxiao/comments/117970.html</wfw:comment><comments>http://www.cppblog.com/momoxiao/archive/2010/06/15/117970.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/momoxiao/comments/commentRss/117970.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/momoxiao/services/trackbacks/117970.html</trackback:ping><description><![CDATA[<div>好久不用source insight了，实在不会用code blocks的搜索功能，重新装上source insight了。。。</div>
<div><br></div>
<div><br>3.x序列号：SI3US-032434-6492</div>
<div><br></div>
<div><br>shift+8：光标选中的词全文加亮。大赞啊。之前以为只有cb有这个功能= =<br>tab键用空格替换：Option-&gt;Document Options中选中expand tabs.</div>
<div><br></div>
<div><br>暂时只剩下那个依然惨不忍睹的中文支持的问题了。。。</div><img src ="http://www.cppblog.com/momoxiao/aggbug/117970.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/momoxiao/" target="_blank">小默</a> 2010-06-15 15:57 <a href="http://www.cppblog.com/momoxiao/archive/2010/06/15/117970.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【转】INT 10H中断</title><link>http://www.cppblog.com/momoxiao/archive/2010/06/05/117214.html</link><dc:creator>小默</dc:creator><author>小默</author><pubDate>Sat, 05 Jun 2010 02:37:00 GMT</pubDate><guid>http://www.cppblog.com/momoxiao/archive/2010/06/05/117214.html</guid><wfw:comment>http://www.cppblog.com/momoxiao/comments/117214.html</wfw:comment><comments>http://www.cppblog.com/momoxiao/archive/2010/06/05/117214.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/momoxiao/comments/commentRss/117214.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/momoxiao/services/trackbacks/117214.html</trackback:ping><description><![CDATA[
<span style="color: rgb(152, 131, 76); font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 22px; "><p style="text-indent: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><font color="#000000" face="Simsun"><span style="line-height: normal; font-size: medium;">功能号：00H<br><br>功能：设置显示模式<br><br>入口参数：AH=00H<br><br>&nbsp;&nbsp; AL=显示模式<br><br>显示模式列表:<br><br>显示模式&nbsp; 显示模式属性<br><br>&nbsp;&nbsp;00H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 40&#215;25&nbsp;&nbsp;&nbsp; 16色 文本<br><br>&nbsp;&nbsp;01H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 40&#215;25&nbsp;&nbsp;&nbsp; 16色 文本<br><br>&nbsp;&nbsp;02H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 80&#215;25&nbsp;&nbsp;&nbsp; 16色 文本<br><br>&nbsp;&nbsp;04H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 320&#215;200&nbsp;&nbsp; 4色<br><br>&nbsp;&nbsp;05H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 320&#215;200&nbsp;&nbsp; 4色<br><br>&nbsp;&nbsp;06H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 640&#215;200&nbsp;&nbsp; 2色<br><br>&nbsp;&nbsp;07H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 80&#215;25&nbsp;&nbsp;&nbsp;&nbsp; 2色 文本<br><br>&nbsp;&nbsp;08H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 160&#215;200&nbsp; 16色<br><br>&nbsp;&nbsp;09H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 320&#215;200&nbsp; 16色<br><br>&nbsp;&nbsp;0AH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 640&#215;200&nbsp;&nbsp; 4色<br><br>&nbsp;&nbsp;0BH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 保留<br><br>&nbsp;&nbsp;0CH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 保留<br><br>&nbsp;&nbsp;0DH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 320&#215;200&nbsp; 16色<br><br>&nbsp;&nbsp;0EH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 640&#215;200&nbsp; 16色<br><br>&nbsp;&nbsp;0FH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 640&#215;350&nbsp;&nbsp; 2色（单色）<br><br>&nbsp;&nbsp;10H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 640&#215;350&nbsp;&nbsp; 4色<br><br>&nbsp;&nbsp;11H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 640&#215;480&nbsp;&nbsp; 2色<br><br>&nbsp;&nbsp;12H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 640&#215;480&nbsp; 16色<br><br>&nbsp;&nbsp;13H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 320&#215;200 256色<br><br>功能号01H<br><br>功能：设置光标形状<br><br>入口参数： AH＝01H<br><br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CH低四位＝光标的起始行<br><br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CL低四位＝光标的终止行<br><br>出口参数： 无<br><br>功能号：02H<br><br>功能：用文本坐标下设置光标位置<br><br>入口参数： AH＝02H<br><br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; BH＝显示页码<br><br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DH＝行(Y坐标)<br><br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DL＝列(X坐标)<br><br>出口参数： 无<br><br>功能号：03H<br><br>功能：在文本坐标下，读取光标各种信息<br><br>入口参数：AH＝03H<br><br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;BH＝显示页码<br><br>出口参数：CH＝光标的起始行<br><br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CL＝光标的终止行<br><br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DH＝行(Y坐标)<br><br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DL＝列(X坐标)<br><br>功能号：04H<br><br>功能：获取当前状态和光笔位置<br><br>入口参数：AH＝04H<br><br>出口参数：AH＝00h—光笔未按下/未触发，01h—光笔已按下/已触发<br><br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;BX＝象素列(图形X坐标)<br><br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CH＝象素行(图形Y坐标，显示模式：04H~06H)<br><br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CX＝象素行(图形Y坐标，显示模式：0DH~10H)<br><br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DH＝字符行(文本Y坐标)<br><br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DL＝字符列(文本X坐标)<br><br>功能号：05H<br><br>功能：设置显示页，即选择活动的显示页<br><br>入口参数：AH＝05H<br><br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;AL＝显示页<br><br>对于CGA、EGA、MCGA和VGA，其显示页如下表所列：<br><br>模式&nbsp;&nbsp; 页数&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 显示器类型<br><br>00H&nbsp;&nbsp;&nbsp; 01H 0~7&nbsp;&nbsp;&nbsp;&nbsp; CGA、EGA、MCGA、VGA<br><br>02H&nbsp;&nbsp;&nbsp; 03H 0~3&nbsp;&nbsp;&nbsp;&nbsp; CGA<br><br>02H&nbsp;&nbsp;&nbsp; 03H 0~7&nbsp;&nbsp;&nbsp;&nbsp; EGA、MCGA、VGA<br><br>07H&nbsp;&nbsp;&nbsp;&nbsp; 0~7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; EGA、VGA<br><br>0DH&nbsp;&nbsp;&nbsp; 0~7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; EGA、VGA<br><br>0EH&nbsp;&nbsp;&nbsp; 0~3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; EGA、VGA<br><br>0FH&nbsp;&nbsp;&nbsp; 0~1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; EGA、VGA<br><br>10H&nbsp;&nbsp;&nbsp; 0~1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; EGA、VGA<br><br>功能号：06H和07H<br><br>功能：初始化屏幕或滚屏<br><br>入口参数：AH＝06H—向上滚屏，07H—向下滚屏<br><br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;AL＝滚动行数(0—清窗口)<br><br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;BH＝空白区域的缺省属性<br><br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(CH、CL)＝窗口的左上角位置(Y坐标，X坐标)<br><br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(DH、DL)＝窗口的右下角位置(Y坐标，X坐标)<br><br>出口参数： 无<br><br>功能号：08H<br><br>功能：读光标处的字符及其属性<br><br>入口参数：AH＝08H<br><br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;BH＝显示页码<br><br>出口参数：AH＝属性<br><br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;AL＝字符<br><br>功能号：09H<br><br>功能：在当前光标处按指定属性显示字符<br><br>入口参数：AH＝09H<br><br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;AL＝字符<br><br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;BH＝显示页码<br><br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;BL＝属性(文本模式)或颜色(图形模式)<br><br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CX＝重复输出字符的次数<br><br>出口参数：无<br><br>功能号：0AH<br><br>功能：在当前光标处按原有属性显示字符<br><br>入口参数：AH＝0AH<br><br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;AL＝字符<br><br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;BH＝显示页码<br><br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;BL＝颜色(图形模式，仅适用于PCjr)<br><br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CX＝重复输出字符的次数<br><br>出口参数：无<br><br>功能号：0BH<br><br>功能：设置调色板、背景色或边框<br><br>入口参数：AH＝0BH<br><br>设置颜色：BH＝00H，BL＝颜色<br><br>选择调色板：BH＝01H，BL＝调色板(320&#215;200、4种颜色的图形模式)<br><br>出口参数： 无<br><br>功能号：0CH<br><br>功能：写图形象素<br><br>入口参数：AH＝0CH<br><br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;AL＝象素值<br><br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;BH＝页码<br><br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(CX、DX)＝图形坐标列(X)、行(Y)<br><br>出口参数：无<br><br>功能号：0DH<br><br>功能描述：读图形象素<br><br>入口参数：AH＝0DH<br><br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;BH＝页码<br><br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(CX、DX)＝图形坐标列(X)、行(Y)<br><br>出口参数：AL＝象素值<br><br>功能号：0EH<br><br>功能：在Teletype模式下显示字符<br><br>入口参数：AH＝0EH<br><br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;AL＝字符<br><br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;BH＝页码<br><br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;BL＝前景色(图形模式)<br><br>出口参数： 无<br><br>功能号：0FH<br><br>功能：读取显示器模式<br><br>入口参数：AH＝0FH<br><br>出口参数：AH＝屏幕字符的列数<br><br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;AL＝显示模式(参见功能00H中的说明)<br><br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;BH＝页码<br><br>功能号：10H<br><br>功能描述：颜色中断。其子功能说明如下：<br><br>功能号　子功能名称&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 功能号　子功能名称<br><br>&nbsp;00H&nbsp;&nbsp;&nbsp; 设置调色板寄存器&nbsp;&nbsp;&nbsp; 01H&nbsp;&nbsp;&nbsp; 设置边框颜色<br><br>&nbsp;02H&nbsp;&nbsp;&nbsp; 设置调色板和边框&nbsp;&nbsp;&nbsp; 03H&nbsp;&nbsp;&nbsp; 触发闪烁/亮显位<br><br>&nbsp;07H&nbsp;&nbsp;&nbsp; 读取调色板寄存器&nbsp;&nbsp;&nbsp; 08H&nbsp;&nbsp;&nbsp; 读取边框颜色<br><br>&nbsp;09H&nbsp;&nbsp;&nbsp; 读取调色板和边框&nbsp;&nbsp;&nbsp; 10H&nbsp;&nbsp;&nbsp; 设置颜色寄存器<br><br>&nbsp;12H&nbsp;&nbsp;&nbsp; 设置颜色寄存器块&nbsp;&nbsp;&nbsp; 13H&nbsp;&nbsp;&nbsp; 设置颜色页状态<br><br>&nbsp;15H&nbsp;&nbsp;&nbsp; 读取颜色寄存器&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 17H&nbsp;&nbsp;&nbsp; 读取颜色寄存器块<br><br>&nbsp;1AH&nbsp;&nbsp;&nbsp; 读取颜色页状态&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1BH&nbsp;&nbsp;&nbsp; 设置灰度值<br><br>&nbsp;<br><br>功能号：11H<br><br>功能： 字体中断。其子功能说明如下：<br><br>子功能号&nbsp;&nbsp; 子功能名称<br><br>&nbsp;&nbsp;00H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 装入用户字体和可编程控制器<br><br>&nbsp;&nbsp;10H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 装入用户字体和可编程控制器<br><br>&nbsp;&nbsp;01H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 装入8&#215;14 ROM字体和可编程控制器<br><br>&nbsp;&nbsp;11H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 装入8&#215;14 ROM字体和可编程控制器<br><br>&nbsp;&nbsp;02H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 装入8&#215;8 ROM字体和可编程控制器<br><br>&nbsp;&nbsp;12H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 装入8&#215;8 ROM字体和可编程控制器<br><br>&nbsp;&nbsp;03H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 设置块指示器<br><br>&nbsp;&nbsp;04H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 装入8&#215;16 ROM字体和可编程控制器<br><br>&nbsp;&nbsp;14H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 装入8&#215;16 ROM字体和可编程控制器<br><br>&nbsp;&nbsp;20H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 设置INT 1Fh字体指针<br><br>&nbsp;&nbsp;21H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 为用户字体设置INT 43h<br><br>&nbsp;&nbsp;22H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 为8&#215;14 ROM字体设置INT 43H<br><br>&nbsp;&nbsp;23H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 为8&#215;8 ROM字体设置INT 43H<br><br>&nbsp;&nbsp;24H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 为8&#215;16 ROM字体设置INT 43H<br><br>&nbsp;&nbsp;30H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 读取字体信息<br><br>&nbsp;<br><br>功能号：12H<br><br>功能：显示器的配置中断。其子功能说明如下：<br><br>功能号&nbsp;&nbsp;&nbsp; 功能名称 &nbsp;&nbsp;<br><br>&nbsp;&nbsp;10H&nbsp;&nbsp;&nbsp;&nbsp; 读取配置信息&nbsp;<br><br>&nbsp;&nbsp;20H&nbsp;&nbsp;&nbsp;&nbsp; 选择屏幕打印&nbsp;<br><br>&nbsp;&nbsp;30H&nbsp;&nbsp;&nbsp;&nbsp; 设置扫描行<br><br>&nbsp;&nbsp;31H&nbsp;&nbsp;&nbsp;&nbsp; 允许/禁止装入缺省调色板<br><br>&nbsp;&nbsp;32H&nbsp;&nbsp;&nbsp;&nbsp; 允许/禁止显示<br><br>&nbsp;&nbsp;33H&nbsp;&nbsp;&nbsp;&nbsp; 允许/禁止灰度求和<br><br>&nbsp;&nbsp;34H&nbsp;&nbsp;&nbsp;&nbsp; 允许/禁止光标模拟<br><br>&nbsp;&nbsp;35H&nbsp;&nbsp;&nbsp;&nbsp; 切换活动显示<br><br>&nbsp;&nbsp;36H&nbsp;&nbsp;&nbsp;&nbsp; 允许/禁止屏幕刷新<br><br>&nbsp;<br><br>功能号：13H<br><br>功能：在Teletype模式下显示字符串<br><br>入口参数：AH＝13H<br><br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;BH＝页码<br><br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;BL＝属性(若AL=00H或01H)<br><br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CX＝显示字符串长度<br><br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(DH、DL)＝坐标(行、列)<br><br>ES:BP＝显示字符串的地址 AL＝ 显示输出方式<br><br>&nbsp;0—字符串中只含显示字符，其显示属性在BL中。显示后，光标位置不变<br><br>&nbsp;1—字符串中只含显示字符，其显示属性在BL中。显示后，光标位置改变<br><br>&nbsp;2—字符串中含显示字符和显示属性。显示后，光标位置不变<br><br>&nbsp;3—字符串中含显示字符和显示属性。显示后，光标位置改变<br><br>&nbsp;<br><br>出口参数： 无<br><br>功能号：1AH<br><br>功能：读取/设置显示组合编码，仅PS/2有效，在此从略<br><br>功能号：1BH<br><br>功能：读取功能/状态信息，仅PS/2有效，在此从略<br><br>功能号：1CH<br><br>功能：保存/恢复显示器状态，仅PS/2有效，在此从略</span></font></p></span><img src ="http://www.cppblog.com/momoxiao/aggbug/117214.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/momoxiao/" target="_blank">小默</a> 2010-06-05 10:37 <a href="http://www.cppblog.com/momoxiao/archive/2010/06/05/117214.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>php study</title><link>http://www.cppblog.com/momoxiao/archive/2010/05/15/115427.html</link><dc:creator>小默</dc:creator><author>小默</author><pubDate>Fri, 14 May 2010 23:59:00 GMT</pubDate><guid>http://www.cppblog.com/momoxiao/archive/2010/05/15/115427.html</guid><wfw:comment>http://www.cppblog.com/momoxiao/comments/115427.html</wfw:comment><comments>http://www.cppblog.com/momoxiao/archive/2010/05/15/115427.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/momoxiao/comments/commentRss/115427.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/momoxiao/services/trackbacks/115427.html</trackback:ping><description><![CDATA[1.<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; width: 98%; font-size: 13px;"><span style="color: #000000;">&lt;?</span><span style="color: #000000;">PHP<br></span><span style="color: #008000;">//</span><span style="color: #008000;">1<br>//phpinfo();<br><br>//2<br>//print&nbsp;"hello&nbsp;world";<br><br>//3<br>//$num1&nbsp;=&nbsp;8;<br>//$num2&nbsp;=&nbsp;23;</span><span style="color: #008000;"><br></span><span style="color: #000000;"><br></span><span style="color: #0000ff;">print</span><span style="color: #000000;">&nbsp;</span><span style="color: #800080;">$_GET</span><span style="color: #000000;">[</span><span style="color: #000000;">'</span><span style="color: #000000;">user</span><span style="color: #000000;">'</span><span style="color: #000000;">]</span><span style="color: #000000;">.</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;br/&gt;</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br></span><span style="color: #0000ff;">print</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">Welcome&nbsp;&lt;b&gt;</span><span style="color: #000000;">"</span><span style="color: #000000;">.</span><span style="color: #800080;">$_POST</span><span style="color: #000000;">[</span><span style="color: #000000;">'</span><span style="color: #000000;">user</span><span style="color: #000000;">'</span><span style="color: #000000;">]</span><span style="color: #000000;">.</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;/b&gt;&lt;br/&gt;\n\n</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br><br></span><span style="color: #008000;">//</span><span style="color: #008000;">print&nbsp;$num2;</span><span style="color: #008000;"><br></span><span style="color: #000000;">?&gt;</span><span style="color: #000000;"><br></span></div>
<br>2.<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; width: 98%; font-size: 13px;"><span style="color: #000000;">&lt;!</span><span style="color: #000000;">DOCTYPE&nbsp;html&nbsp;</span><span style="color: #0000ff;">PUBLIC</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">-//W3C//DTD&nbsp;XHTML&nbsp;1.0&nbsp;Strict//EN</span><span style="color: #000000;">"</span><span style="color: #000000;"><br>&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd</span><span style="color: #000000;">"</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #000000;">&lt;</span><span style="color: #000000;">html</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #000000;">&lt;</span><span style="color: #000000;">head</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #000000;">&lt;</span><span style="color: #000000;">title</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">A&nbsp;PHP&nbsp;Script&nbsp;Including&nbsp;HTML</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">title</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">head</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #000000;">&lt;</span><span style="color: #000000;">body</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #000000;">&lt;</span><span style="color: #000000;">div</span><span style="color: #000000;">&gt;&lt;</span><span style="color: #000000;">b</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #000000;">&lt;?</span><span style="color: #000000;">php<br></span><span style="color: #0000ff;">print</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">hello&nbsp;world</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br></span><span style="color: #000000;">?&gt;</span><span style="color: #000000;"><br></span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">b</span><span style="color: #000000;">&gt;&lt;/</span><span style="color: #000000;">div</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">body</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">html</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span></div>
<br>3.<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; width: 98%; font-size: 13px;"><span style="color: #000000;">&lt;?</span><span style="color: #000000;">PHP<br></span><span style="color: #008000;">//</span><span style="color: #008000;">const</span><span style="color: #008000;"><br></span><span style="color: #008080;">define</span><span style="color: #000000;">&nbsp;(</span><span style="color: #000000;">"</span><span style="color: #000000;">USER</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">"</span><span style="color: #000000;">colorfulgreen</span><span style="color: #000000;">"</span><span style="color: #000000;">);&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">定义一个常量</span><span style="color: #008000;"><br></span><span style="color: #0000ff;">print</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">Welcome&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">.</span><span style="color: #000000;">USER;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">'.'表示连接</span><span style="color: #008000;"><br></span><span style="color: #0000ff;">print</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;br&nbsp;/&gt;</span><span style="color: #000000;">"</span><span style="color: #000000;">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">换行</span><span style="color: #008000;"><br></span><span style="color: #0000ff;">print</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">the&nbsp;second&nbsp;line.</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br></span><span style="color: #000000;">?&gt;</span></div>
<br>4.<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; width: 98%; font-size: 13px;"><span style="color: #000000;">&lt;?</span><span style="color: #000000;">php<br></span><span style="color: #008000;">//</span><span style="color: #008000;">程序流程<br>//switch</span><span style="color: #008000;"><br></span><span style="color: #800080;">$satisfied</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">c.g</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br></span><span style="color: #0000ff;">if</span><span style="color: #000000;">(</span><span style="color: #800080;">$satisfied</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">cg</span><span style="color: #000000;">"</span><span style="color: #000000;">){<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">print</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">go&nbsp;into&nbsp;the&nbsp;if.</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br>}<br></span><span style="color: #0000ff;">else</span><span style="color: #000000;">{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">print</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">go&nbsp;into&nbsp;the&nbsp;else.</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br>}<br><br></span><span style="color: #008000;">//</span><span style="color: #008000;">switch&nbsp;case<br>//?&nbsp;:</span><span style="color: #008000;"><br></span><span style="color: #000000;"><br></span><span style="color: #0000ff;">print</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;br&nbsp;/&gt;</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br><br></span><span style="color: #800080;">$count</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br></span><span style="color: #0000ff;">while</span><span style="color: #000000;">(</span><span style="color: #800080;">$count</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">12</span><span style="color: #000000;">){<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">print</span><span style="color: #000000;">&nbsp;</span><span style="color: #800080;">$count</span><span style="color: #000000;">.</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;br&nbsp;/&gt;</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800080;">$count</span><span style="color: #000000;">++</span><span style="color: #000000;">;<br>}<br><br></span><span style="color: #008000;">//</span><span style="color: #008000;">do<img src="http://www.cppblog.com/Images/dot.gif">while<br>//for<br>//break<br>//continue</span><span style="color: #008000;"><br></span><span style="color: #000000;">?&gt;</span></div>
<br>5.<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; width: 98%; font-size: 13px;"><span style="color: #000000;">&lt;?</span><span style="color: #000000;">php<br></span><span style="color: #008000;">//</span><span style="color: #008000;">func<br>//ex.1</span><span style="color: #008000;"><br></span><span style="color: #800080;">$num</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">321</span><span style="color: #000000;">;<br></span><span style="color: #800080;">$newnum</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #008080;">abs</span><span style="color: #000000;">(</span><span style="color: #800080;">$num</span><span style="color: #000000;">);<br></span><span style="color: #0000ff;">print</span><span style="color: #000000;">&nbsp;</span><span style="color: #800080;">$newnum</span><span style="color: #000000;">;<br><br></span><span style="color: #008000;">//</span><span style="color: #008000;">print&nbsp;"&lt;br&nbsp;/&gt;";<br><br>//ex.2.自定义函数</span><span style="color: #008000;"><br></span><span style="color: #0000ff;">function</span><span style="color: #000000;">&nbsp;bighello()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">print</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;h1&gt;HELLO&lt;/h1&gt;</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br>}<br>bighello();<br><br></span><span style="color: #008000;">//</span><span style="color: #008000;">ex.3.带参数</span><span style="color: #008000;"><br></span><span style="color: #0000ff;">function</span><span style="color: #000000;">&nbsp;printBR(</span><span style="color: #800080;">$txt</span><span style="color: #000000;">)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">print</span><span style="color: #000000;">&nbsp;(</span><span style="color: #000000;">"</span><span style="color: #000000;">$txt&lt;br&nbsp;/&gt;\n</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br>}<br>printBR(</span><span style="color: #000000;">"</span><span style="color: #000000;">this&nbsp;is&nbsp;the&nbsp;first&nbsp;line.</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br>printBR(</span><span style="color: #000000;">"</span><span style="color: #000000;">this&nbsp;is&nbsp;the&nbsp;second&nbsp;line.</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br><br></span><span style="color: #008000;">//</span><span style="color: #008000;">ex.4.A&nbsp;Function&nbsp;That&nbsp;Returns&nbsp;a&nbsp;Value</span><span style="color: #008000;"><br></span><span style="color: #0000ff;">function</span><span style="color: #000000;">&nbsp;addNums(</span><span style="color: #800080;">$firstnum</span><span style="color: #000000;">,</span><span style="color: #800080;">$secondnum</span><span style="color: #000000;">)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800080;">$result</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #800080;">$firstnum</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;</span><span style="color: #800080;">$secondnum</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #800080;">$result</span><span style="color: #000000;">;<br>}<br></span><span style="color: #0000ff;">print</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;br&nbsp;/&gt;Function&nbsp;That&nbsp;Returns&nbsp;a&nbsp;Value</span><span style="color: #000000;">"</span><span style="color: #000000;">.</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;br&nbsp;/&gt;</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br></span><span style="color: #0000ff;">print</span><span style="color: #000000;">&nbsp;addNums(</span><span style="color: #000000;">6</span><span style="color: #000000;">,</span><span style="color: #000000;">5</span><span style="color: #000000;">);<br><br></span><span style="color: #008000;">//</span><span style="color: #008000;">ex.5.Calling&nbsp;a&nbsp;Function&nbsp;Dynamically<br>//类似与函数指针</span><span style="color: #008000;"><br></span><span style="color: #0000ff;">print</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;br&nbsp;/&gt;&lt;br&nbsp;/&gt;Calling&nbsp;a&nbsp;Function&nbsp;Dynamically&lt;br&nbsp;/&gt;</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br></span><span style="color: #0000ff;">function</span><span style="color: #000000;">&nbsp;sayHello()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">print</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">hello&lt;br&nbsp;/&gt;</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br>}<br></span><span style="color: #800080;">$function_holder</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">sayHello</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br></span><span style="color: #800080;">$function_holder</span><span style="color: #000000;">();<br><br></span><span style="color: #008000;">//</span><span style="color: #008000;">ex.6.Variable&nbsp;Scope</span><span style="color: #008000;"><br></span><span style="color: #0000ff;">print</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;br&nbsp;/&gt;&lt;br&nbsp;/&gt;Variable&nbsp;Scope&lt;br&nbsp;/&gt;</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br></span><span style="color: #0000ff;">function</span><span style="color: #000000;">&nbsp;test()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800080;">$testvariable</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">this&nbsp;is&nbsp;a&nbsp;test&nbsp;variable</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br>}<br></span><span style="color: #0000ff;">print</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">test&nbsp;variable:&nbsp;$testvariable</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br><br></span><span style="color: #008000;">//</span><span style="color: #008000;">ex.7.global&nbsp;&amp;&nbsp;static</span><span style="color: #008000;"><br></span><span style="color: #0000ff;">print</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;br&nbsp;/&gt;&lt;br&nbsp;/&gt;global&nbsp;&amp;&nbsp;static&lt;br&nbsp;/&gt;</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br></span><span style="color: #800080;">$num_of_calls</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br></span><span style="color: #0000ff;">function</span><span style="color: #000000;">&nbsp;numberedHeading(</span><span style="color: #800080;">$txt</span><span style="color: #000000;">)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">global</span><span style="color: #000000;">&nbsp;</span><span style="color: #800080;">$num_of_calls</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800080;">$num_of_calls</span><span style="color: #000000;">++</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">print</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">$num_of_calls.$txt&lt;br&nbsp;/&gt;</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br>}<br>numberedHeading(</span><span style="color: #000000;">"</span><span style="color: #000000;">the&nbsp;first&nbsp;call<img src="http://www.cppblog.com/Images/dot.gif">global</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br>numberedHeading(</span><span style="color: #000000;">"</span><span style="color: #000000;">the&nbsp;second&nbsp;call<img src="http://www.cppblog.com/Images/dot.gif">global</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br></span><span style="color: #008000;">//</span><span style="color: #008000;">用局部静态变量，和上面输出一样</span><span style="color: #008000;"><br></span><span style="color: #0000ff;">function</span><span style="color: #000000;">&nbsp;numberedHeading2(</span><span style="color: #800080;">$txt</span><span style="color: #000000;">)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #800080;">$num_of_calls2</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800080;">$num_of_calls</span><span style="color: #000000;">++</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">print</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">$num_of_calls.$txt&lt;br&nbsp;/&gt;</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br>}<br>numberedHeading2(</span><span style="color: #000000;">"</span><span style="color: #000000;">the&nbsp;first&nbsp;call<img src="http://www.cppblog.com/Images/dot.gif">global</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br>numberedHeading2(</span><span style="color: #000000;">"</span><span style="color: #000000;">the&nbsp;second&nbsp;call<img src="http://www.cppblog.com/Images/dot.gif">global</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br><br></span><span style="color: #008000;">//</span><span style="color: #008000;">ex.7.A&nbsp;Function&nbsp;Requiring&nbsp;Two&nbsp;Arguments</span><span style="color: #008000;"><br></span><span style="color: #0000ff;">function</span><span style="color: #000000;">&nbsp;headingWrap(</span><span style="color: #800080;">$txt</span><span style="color: #000000;">,</span><span style="color: #800080;">$size</span><span style="color: #000000;">)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">print</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;h$size&gt;$txt&lt;/h$size&gt;</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br>}<br>headingWrap(</span><span style="color: #000000;">"</span><span style="color: #000000;">Book&nbsp;title</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">1</span><span style="color: #000000;">);<br>headingWrap(</span><span style="color: #000000;">"</span><span style="color: #000000;">Chapter&nbsp;title</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">2</span><span style="color: #000000;">);<br><br></span><span style="color: #008000;">//</span><span style="color: #008000;">ex.8.A&nbsp;Function&nbsp;with&nbsp;an&nbsp;Optional&nbsp;Argument</span><span style="color: #008000;"><br></span><span style="color: #0000ff;">function</span><span style="color: #000000;">&nbsp;headingWrap2(</span><span style="color: #800080;">$txt</span><span style="color: #000000;">,</span><span style="color: #800080;">$size</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">3</span><span style="color: #000000;">)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">print</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;h$size&gt;$txt&lt;/h$size&gt;</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br>}<br>headingWrap2(</span><span style="color: #000000;">"</span><span style="color: #000000;">Book&nbsp;title</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">1</span><span style="color: #000000;">);<br>headingWrap2(</span><span style="color: #000000;">"</span><span style="color: #000000;">Chapter&nbsp;title</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br><br></span><span style="color: #008000;">//</span><span style="color: #008000;">ex.9.Passing&nbsp;an&nbsp;Argument&nbsp;to&nbsp;a&nbsp;Function&nbsp;by&nbsp;Value</span><span style="color: #008000;"><br></span><span style="color: #0000ff;">function</span><span style="color: #000000;">&nbsp;addFive(</span><span style="color: #800080;">$num</span><span style="color: #000000;">)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800080;">$num</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">+=</span><span style="color: #000000;">5</span><span style="color: #000000;">;<br>}<br></span><span style="color: #800080;">$orignum</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">10</span><span style="color: #000000;">;<br>addFive(</span><span style="color: #800080;">$orignum</span><span style="color: #000000;">);<br></span><span style="color: #0000ff;">print</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">$orignum&lt;br&nbsp;/&gt;</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br><br></span><span style="color: #008000;">//</span><span style="color: #008000;">ex.10.Pass&nbsp;an&nbsp;Argument&nbsp;to&nbsp;a&nbsp;Function&nbsp;by&nbsp;Reference<br>//???</span><span style="color: #008000;"><br></span><span style="color: #0000ff;">function</span><span style="color: #000000;">&nbsp;addFive2(</span><span style="color: #000000;">&amp;</span><span style="color: #800080;">$num</span><span style="color: #000000;">)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800080;">$num</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">+=</span><span style="color: #000000;">5</span><span style="color: #000000;">;<br>}<br></span><span style="color: #800080;">$orignum2</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">10</span><span style="color: #000000;">;<br>addFive(</span><span style="color: #800080;">$orignum2</span><span style="color: #000000;">);<br></span><span style="color: #0000ff;">print</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">$orignum2&lt;br&nbsp;/&gt;</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br><br></span><span style="color: #008000;">//</span><span style="color: #008000;">ex.11.A&nbsp;Simple&nbsp;Anonymous&nbsp;Function,函数指针</span><span style="color: #008000;"><br></span><span style="color: #800080;">$my_anon</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #008080;">create_function</span><span style="color: #000000;">(</span><span style="color: #000000;">'</span><span style="color: #000000;">$a,$b</span><span style="color: #000000;">'</span><span style="color: #000000;">,</span><span style="color: #000000;">'</span><span style="color: #000000;">return&nbsp;$a&nbsp;+&nbsp;$b;</span><span style="color: #000000;">'</span><span style="color: #000000;">);<br></span><span style="color: #0000ff;">print</span><span style="color: #000000;">&nbsp;</span><span style="color: #800080;">$my_anon</span><span style="color: #000000;">(</span><span style="color: #000000;">3</span><span style="color: #000000;">,</span><span style="color: #000000;">9</span><span style="color: #000000;">);<br><br></span><span style="color: #000000;">?&gt;</span></div>
<br>6.<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; width: 98%; font-size: 13px;"><span style="color: #000000;">&lt;?</span><span style="color: #000000;">php<br></span><span style="color: #008000;">//</span><span style="color: #008000;">array<br><br>//ex.1.</span><span style="color: #008000;"><br></span><span style="color: #800080;">$users</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">array</span><span style="color: #000000;">(</span><span style="color: #000000;">"</span><span style="color: #000000;">Bert</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">"</span><span style="color: #000000;">Sharon</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">"</span><span style="color: #000000;">Bettery</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">"</span><span style="color: #000000;">Harry</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br></span><span style="color: #0000ff;">print</span><span style="color: #000000;">&nbsp;</span><span style="color: #800080;">$users</span><span style="color: #000000;">[</span><span style="color: #000000;">2</span><span style="color: #000000;">]</span><span style="color: #000000;">.</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;br&nbsp;/&gt;</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br><br></span><span style="color: #008000;">//</span><span style="color: #008000;">ex.2.Defining&nbsp;Associative&nbsp;Arrays&nbsp;with&nbsp;the&nbsp;array()&nbsp;Construct</span><span style="color: #008000;"><br></span><span style="color: #800080;">$character</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">array</span><span style="color: #000000;">(<br>&nbsp;&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">name</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">=&gt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">bob</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;"><br>&nbsp;&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">occupation</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">=&gt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">superhero</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;"><br>&nbsp;&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">age</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">=&gt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">30</span><span style="color: #000000;">,</span><span style="color: #000000;"><br>&nbsp;&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">special&nbsp;power</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">=&gt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">x-ray&nbsp;vision</span><span style="color: #000000;">"</span><span style="color: #000000;"><br>&nbsp;&nbsp;);<br></span><span style="color: #0000ff;">print</span><span style="color: #000000;">&nbsp;</span><span style="color: #800080;">$character</span><span style="color: #000000;">[</span><span style="color: #000000;">"</span><span style="color: #000000;">age</span><span style="color: #000000;">"</span><span style="color: #000000;">];<br><br></span><span style="color: #008000;">//</span><span style="color: #008000;">ex.3.Defining&nbsp;a&nbsp;Multidimensional&nbsp;Array<br><br>//未完</span><span style="color: #008000;"><br></span><span style="color: #000000;">?&gt;</span></div>
<p>&nbsp;</p>
<p>7.<br></p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; width: 98%; font-size: 13px;"><span style="color: #000000;">&lt;?</span><span style="color: #000000;">php<br></span><span style="color: #008000;">/*</span><span style="color: #008000;"><br>//http://localhost/10.php?user=cg&amp;address=192.168.x.x<br>print&nbsp;"Welcome&nbsp;&lt;b&gt;".$_GET['user']."&lt;/b&gt;&lt;br/&gt;\n\n";<br>print&nbsp;"Your&nbsp;address&nbsp;is:&nbsp;&lt;br/&gt;&lt;b&gt;".$_GET['address']."&lt;/b&gt;";<br></span><span style="color: #008000;">*/</span><span style="color: #000000;"><br><br></span><span style="color: #0000ff;">print</span><span style="color: #000000;">&nbsp;</span><span style="color: #800080;">$_GET</span><span style="color: #000000;">[</span><span style="color: #000000;">'</span><span style="color: #000000;">user</span><span style="color: #000000;">'</span><span style="color: #000000;">]</span><span style="color: #000000;">.</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;br/&gt;</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br><br></span><span style="color: #0000ff;">print</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">Welcome&nbsp;&lt;b&gt;</span><span style="color: #000000;">"</span><span style="color: #000000;">.</span><span style="color: #800080;">$_POST</span><span style="color: #000000;">[</span><span style="color: #000000;">'</span><span style="color: #000000;">user</span><span style="color: #000000;">'</span><span style="color: #000000;">]</span><span style="color: #000000;">.</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;/b&gt;&lt;br/&gt;\n\n</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br></span><span style="color: #0000ff;">print</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">Your&nbsp;address&nbsp;is:&nbsp;&lt;br/&gt;&lt;b&gt;</span><span style="color: #000000;">"</span><span style="color: #000000;">.</span><span style="color: #800080;">$_POST</span><span style="color: #000000;">[</span><span style="color: #000000;">'</span><span style="color: #000000;">address</span><span style="color: #000000;">'</span><span style="color: #000000;">]</span><span style="color: #000000;">.</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;/b&gt;</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br><br></span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(&nbsp;</span><span style="color: #008080;">is_array</span><span style="color: #000000;">(&nbsp;</span><span style="color: #800080;">$_POST</span><span style="color: #000000;">[</span><span style="color: #000000;">'</span><span style="color: #000000;">products</span><span style="color: #000000;">'</span><span style="color: #000000;">]&nbsp;)&nbsp;)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">print</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;p&gt;Your&nbsp;product&nbsp;choices&nbsp;are:&lt;/p&gt;\n</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">print</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;ul&gt;\n</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">foreach</span><span style="color: #000000;">&nbsp;(&nbsp;</span><span style="color: #800080;">$_POST</span><span style="color: #000000;">[</span><span style="color: #000000;">'</span><span style="color: #000000;">products</span><span style="color: #000000;">'</span><span style="color: #000000;">]&nbsp;</span><span style="color: #0000ff;">as</span><span style="color: #000000;">&nbsp;</span><span style="color: #800080;">$value</span><span style="color: #000000;">&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">print</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;li&gt;$value&lt;/li&gt;\n</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">print</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;/ul&gt;\n</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br>}<br></span><span style="color: #000000;">?&gt;</span><span style="color: #000000;"><br></span></div><img src ="http://www.cppblog.com/momoxiao/aggbug/115427.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/momoxiao/" target="_blank">小默</a> 2010-05-15 07:59 <a href="http://www.cppblog.com/momoxiao/archive/2010/05/15/115427.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>php Notice: Undefined offset:</title><link>http://www.cppblog.com/momoxiao/archive/2010/04/19/112979.html</link><dc:creator>小默</dc:creator><author>小默</author><pubDate>Mon, 19 Apr 2010 05:23:00 GMT</pubDate><guid>http://www.cppblog.com/momoxiao/archive/2010/04/19/112979.html</guid><wfw:comment>http://www.cppblog.com/momoxiao/comments/112979.html</wfw:comment><comments>http://www.cppblog.com/momoxiao/archive/2010/04/19/112979.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/momoxiao/comments/commentRss/112979.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/momoxiao/services/trackbacks/112979.html</trackback:ping><description><![CDATA[<p>&nbsp;</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; width: 98%; font-size: 13px;"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align="top"><span style="color: #000000;">Notice:&nbsp;Undefined&nbsp;offset:&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">in</span><span style="color: #000000;">&nbsp;E:\CODE\PHP\login\check.php&nbsp;on&nbsp;line&nbsp;</span><span style="color: #000000;">3</span></div>
<p>数组下标越界<strong></strong></p><img src ="http://www.cppblog.com/momoxiao/aggbug/112979.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/momoxiao/" target="_blank">小默</a> 2010-04-19 13:23 <a href="http://www.cppblog.com/momoxiao/archive/2010/04/19/112979.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>『转』bat语法</title><link>http://www.cppblog.com/momoxiao/archive/2010/04/12/112390.html</link><dc:creator>小默</dc:creator><author>小默</author><pubDate>Mon, 12 Apr 2010 15:38:00 GMT</pubDate><guid>http://www.cppblog.com/momoxiao/archive/2010/04/12/112390.html</guid><wfw:comment>http://www.cppblog.com/momoxiao/comments/112390.html</wfw:comment><comments>http://www.cppblog.com/momoxiao/archive/2010/04/12/112390.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/momoxiao/comments/commentRss/112390.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/momoxiao/services/trackbacks/112390.html</trackback:ping><description><![CDATA[<p>如何创建批处理文件？</p>
<p>&nbsp;&nbsp;&nbsp; 不要听了批处理文件就感到很神气，其实这东西很简单的．你用过记事本没有？用过？　好的．将记事本打开，什么都不用写，然后选择文件，保存．保存类型选择所有文件，文件名则命名为　＊．bat　这个＊代表是文件名，你可以随便的起．保存好之后，看看你保存的地方，会出现一个白色窗口里有个黄色齿轮的图标．这东西就是你创建的批处理文件，双击他就可以运行，但他现在由于里面没有输入任何命令，所以他运行了并不会做任何事情．当我们想往这个＊.bat文件中添加东西时，只要右键选择他，然后选择编辑，就可以打开记事本往内输入命令了．[/rm]</p>
<p>批处理文件中的命令是什么？</p>
<p>批处理文件中的命令暂时先可以理解为dos命令，等稍后深入理解了以后再进行解释．批处理顾名思义就是一大堆东西堆在一起处理．换句话说就是往里面写一条条dos命令，然后按顺序挨个执行，效果跟你在cmd里敲dos命令是一个效果．只不过用批处理写好之后，要运行只要双击下就可以运行了．而不用再一遍一遍的重复的往里面打命令．这就是批处理文件的好处．</p>
<p>除了运行dos命令之外，他还可以支持选择结构if，循环结构for，goto等，与c有点类似，但远没有c全面，并且编写语言十分不规范．</p>
<p>批处理语法：</p>
<p>先讲个最基本的东西　<strong style="background-color: #ffff00;">@echo off</strong></p>
<p>echo的意思是回旋，这里的意思就是回显，echo　off意思就是关闭回显．前面的@表示echo off 这一行也不会回显你可以试着去掉@和整行去掉．@的另一个功能是在执行完批处理文件时自动恢复命令回显。如果第一句用的是ECHO OFF，那么在执行完批处理文件以后不会显示命令提示符。</p>
<p>举个例子：如果我们先创建一个１．bat文件，往里面输入：</p>
<p><span style="background-color: #ffff00;">dir</span> 然后保存在c：＼下．然后我们运行cmd，进入c盘根目录下，输入１．bat，则显示：</p>
<p><span style="background-color: yellow;">C:&gt;1.bat</span><span style="background-color: yellow;"><br>C:&gt;dir</span></p>
<p>驱动器 C 中的卷没有标签。</p>
<p>卷的序列号是 0C5D-07FF</p>
<p>C: 的目录</p>
<p>2004-08-25 00:45 WINDOWS</p>
<p>2004-08-25 00:51 Documents and Settings</p>
<p>...........</p>
<p>C:</p>
<p>如果将１．bat内容修改成</p>
<p><span style="background-color: yellow;">echo off<br></span><span style="background-color: yellow;">dir</span></p>
<p>然后再在cmd里输入１．bat，则会显示</p>
<p><span style="background-color: yellow;">C:&gt;1.bat</span><span style="background-color: yellow;"><br>C:&gt;echo off</span>　　　　　　　//因为运行了echo　off，所以没有显示dir命令，直接显示了结果</p>
<p>驱动器 C 中的卷没有标签。</p>
<p>卷的序列号是 0C5D-07FF</p>
<p>C: 的目录</p>
<p>2004-08-25 00:45 WINDOWS</p>
<p>2004-08-25 00:51 Documents and Settings</p>
<p>．．．．．</p>
<p>C:</p>
<p>如果将１．bat文件修改成：</p>
<p><span style="background-color: yellow;">@echo off<br>dir</span></p>
<p>则显示成：</p>
<p><span style="background-color: yellow;">C:&gt;1.bat</span> //与前面不同，并没有显示echo　off，原因是加了＠，所以不显示＠后面的内容．又因为加/了echo　off，所以后面的命令不显示，直接显示结果</p>
<p>驱动器 C 中的卷没有标签。</p>
<p>卷的序列号是 0C5D-07FF</p>
<p>C: 的目录</p>
<p>2004-08-25 00:45 WINDOWS</p>
<p>2004-08-25 00:51 Documents and Settings</p>
<p>．．．．</p>
<p>C:</p>
<p>通过以上的比较，相信你对echo　off命令已经充分掌握了．</p>
<p>接下来讲的是<span style="background-color: #ffff00;">call</span>命令：</p>
<p>call 是打电话的call，而不是＂喔靠＂的靠：）．call的意思为调用．假如有２个批处理文件a.bat和b.bat．如果我想运行a.bat的当中运行 b.bat．如何运行呢？其实很简单，只要在a.bat文件中输入call命令，则可以在a.bat运行的当中，运行b.bat，等b.bat运行完之后，继续执行a.bat</p>
<p>call命令格式：</p>
<p><span style="background-color: #ffff00;">CALL</span> [drive:][path]filename [batch-parameters]</p>
<p>batch-parameters 指定批处理程序所需的命令行信息。</p>
<p>举例如下，我们在c盘根目录下创建a．bat文件，内容为:</p>
<p>echo　this is a.bat</p>
<p>call d:b.bat</p>
<p>echo done</p>
<p>然后在d盘根目录下创建b.bat，内容为：</p>
<p>echo this is b.bat</p>
<p>保存后，打开cmd，进入c盘根目录，然后输入1.bat，显示如下：</p>
<p>C:&gt;a.bat</p>
<p>C:&gt;echo this is a.bat</p>
<p>this is a.bat</p>
<p>C:&gt;call d:b.bat</p>
<p>C:&gt;echo this is b.bat</p>
<p>this is b.bat</p>
<p>C:&gt;echo done</p>
<p>done</p>
<p>由例子很容易看出来，是先运行a.bat的内容，直到遇到call　b.bat后，则调用b.bat，运行完b.bat后，再返回a.bat接着运行call　b.bat后面的echo　done语句，直至将a.bat的所有批处理命令运行完．</p>
<p>注：里面有个[batch-parameters]里面的所指的参数是什么，知道的朋友能否告知，不胜感激．</p>
<p><span style="background-color: #ffff00;">PAUSE</span> 命令</p>
<p>暂停批处理程序的执行并显示一条消息，提示用户按任意键继续执行。只能在批处理程序中使用该命令。</p>
<p><span style="background-color: #ffff00;">rem</span>命令：</p>
<p>表示此命令后的字符为解释行（注释），不执行，只是给自己今后参考用的（相当于程序中的注释）．</p>
<p>同时你可以用两个冒号来替代rem．如：　::等同于一个rem．但他们有个区别，就是用::作注释的话他是不回显的，即使你打echo　on强制回显也没有同的．同时rem可以在config.sys中加注释．</p>
<p>语法： rem[commnet]</p>
<p><span style="background-color: #ffff00;">批处理文件参数：</span></p>
<p>有点编程基础的人都知道函数有参数．批处理文件也有参数．</p>
<p>我打个比方，希望能帮助没有语言基础的人也能看的非常明白．　</p>
<p>我从例子里开始吧．首先在c盘根目录下创建一个批处理文件 a．bat，里面输入内容</p>
<p><span style="background-color: #ffff00;">echo %1</span></p>
<p>然后打开cmd，然后进入c盘根目录．输入：<span style="background-color: #ffff00;">a "this is a canshu"</span></p>
<p>得到结果如下：</p>
<p>C:&gt;a.bat "this is a test"</p>
<p>C:&gt;echo "this is a test"</p>
<p>"this is a test"</p>
<p>输入的a "this is a canshu"中，a为新建的a.bat的文件名a（后面的.bat可写也可不写），而a后面的　"this is a canshu"这句话就是参数，写在这的参数，在程序运行中就将参数自动放到批处理程序中去．那么放在什么位置呢？就是放在　%1的地方．</p>
<p>看了例子，让我们看看整个关于参数的定义如何：</p>
<p>批处理文件还可以像C语言的函数一样使用参数（相当于DOS命令的命令行参数），这需要用到一个参数表示符"%"。</p>
<p><span style="background-color: #ffff00;">%[1-9]</span>表示参数，参数是指在运行批处理文件时在文件名后加的以空格（或者Tab）分隔的字符串。变量可以从%0到%9<span style="background-color: #ffff00;">，%0表示批处理命令本身，其它参数字符串用%1到%9顺序表示</span>。//我们上个程序的例子里就有％１，他就是参数，而输入中＂this　is　a　test＂作为参数就直接放到％１的位置，于是程序就变成了 echo "this is a test"．</p>
<p>再举几个例子帮助你理解：</p>
<p>C:根目录下一批处理文件名为b.bat，内容为:</p>
<p><span style="background-color: #ffff00;">@echo off</span></p>
<p><span style="background-color: #ffff00;">type %1</span> 　　　　//<strong>type为dos中的输出命令，可以用来输出文本文件的内容</strong>，比如我们新建一个１．txt文件</p>
<p>//里面输入内容，保存．进cmd，如果输入１．txt则看不了１．txt文件内容，但是如果我</p>
<p>//想看怎么办呢？这时候可以用type命令，只要在cmd里输入type　１．txt就能显示</p>
<p>//１．txt文件中的内容了　</p>
<p><span style="background-color: #ffff00;">type %2</span></p>
<p>那么运行C:&gt;b a.txt b.txt</p>
<p>%1 : 表示a.txt</p>
<p>%2 : 表示b.txt</p>
<p>于是上面的批处理命令就变成了</p>
<p>@echo off</p>
<p>type a.txt</p>
<p>type b.txt</p>
<p>于是上面的命令将顺序地显示a.txt和b.txt文件的内容。</p>
<p>没有编程基础的人可能要问，干什么要弄个参数啊？在后面加个参数多麻烦啊？直接往里面写不就好了啊？！其实这样想有对的方面也有错的方面．还是举个例子说明吧．</p>
<p>第一步还是在c盘根目录下新建一个批处理文件，我们取名仍为a.bat．往里面的内容输入为：</p>
<p>ping %1　　//ping命令可以简单理解为测试一台机器开着还是没有开，如果开着的话，他就回给你回送回应．</p>
<p>然后进cmd，我们想测试下１６３的服务器是不是开着，则输入a <a href="http://www.163.com/">www.163.com</a></p>
<p>对于知道ping命令的人，可以打ping进行检查，但如果想ping的人不知道ping命令怎么用，那怎么办啊？这时候你就可以把命令预先输入到批处理文件中，保存好，然后让不会用的人进cmd，运行你的批处理文件，文件名后面加上他要ping　的网站地址就行了．换句话说，他想ping　１６３就直接加１６３的网址，想ping　sina就直接加sina的网址．这样只要输入一个参数，而不用改程序本身，整个程序的通用性就大大提高了．</p>
<p>这是对于一个简单的ping命令，你或许觉得用参数不值得，还是直接改不就好了啊．但如果程序有很多条，你一下找不到在哪改怎么办啊？所以，不管你是菜哥，菜弟，菜姐，菜妹，只要运行下，输入参数，结果自己就会出来，不用再象你一样，考虑怎么编写批处理文件．人家只要知道是输入什么东西能让批处理程序运行，而编写的人则想的是如何让不懂程序的人能运行程序．</p>
<p>批处理参数就这么简单，不知道你理解了没有？但如果你想深一步了解批处理参数，可以接着往下看，如果不想深入了解，知道现在这么多也就够了．</p>
<p><br>＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝</p>
<p>因为参数只有１％－９％，但当我们要引用第十个或更多个参数时, 就必须移动DOS 的参数起始指针. shift 命令正充当了这个移动指针的角色, 它将参数的起始指针移动到下一个参数, 类似C 语言中的指针操作. 图示如下:</p>
<p>初始状态, cmd 为命令名, 可以用 %0 引用</p>
<p>cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10</p>
<p>^ ^ ^ ^ ^ ^ ^ ^ ^ ^</p>
<p>&amp;line; &amp;line; &amp;line; &amp;line; &amp;line; &amp;line; &amp;line; &amp;line; &amp;line; &amp;line;</p>
<p>%0 %1 %2 %3 %4 %5 %6 %7 %8 %9</p>
<p>经过1次shift后, cmd 将无法被引用</p>
<p>cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10</p>
<p>^ ^ ^ ^ ^ ^ ^ ^ ^ ^</p>
<p>&amp;line; &amp;line; &amp;line; &amp;line; &amp;line; &amp;line; &amp;line; &amp;line; &amp;line; &amp;line;</p>
<p>%0 %1 %2 %3 %4 %5 %6 %7 %8 %9</p>
<p>经过2次shift后, arg1也被废弃, %9指向为空, 没有引用意义</p>
<p>cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10</p>
<p>^ ^ ^ ^ ^ ^ ^ ^ ^ ^</p>
<p>&amp;line; &amp;line; &amp;line; &amp;line; &amp;line; &amp;line; &amp;line; &amp;line; &amp;line; &amp;line;</p>
<p>%0 %1 %2 %3 %4 %5 %6 %7 %8 %9</p>
<p>遗憾的是, win9x 和DOS下均不支持 shift 的逆操作. 只有在 nt 内核命令行环境下, shift 才支持 /n 参数, 可以以第一参数为基准返复移动起始指针.</p>
<p>=================</p>
<p>if goto choice for高级语法</p>
<p>if命令</p>
<p>说得通俗点，if就相当于我们白话里的如果．</p>
<p>举个例子：如果a喜欢b，那么a就要娶b．　这句话翻译成计算机语言就成了</p>
<p>if　a喜欢b　a就要娶b．</p>
<p>当然拉，计算机不可能理解a喜欢b，a就要娶b这两句话，这里只是举个例子让你方便理解．</p>
<p>if语句一共有3种模式,如下:</p>
<p>IF [NOT] string1==string2 command</p>
<p>IF [NOT] EXIST filename command</p>
<p>IF [NOT] ERRORLEVEL number command</p>
<p>NOT 指定只有条件为 false 的情况下， Windows XP 才应该执行该命令。</p>
<p>ERRORLEVEL number 如果最后运行的程序返回一个等于或大于指定数字的退出编码，指定条件为 true。</p>
<p>string1==string2 如果指定的文字字符串匹配，指定条件为 true。</p>
<p>EXIST filename 如果指定的文件名存在，指定条件为 true。</p>
<p>command 如果符合条件，指定要执行的命令。如果指定的条件为 FALSE，命令后可跟一个执行 ELSE关键字后的命令的 ELSE 命令。</p>
<p>我们先讲解第一种:</p>
<p>IF [NOT] string1==string2 command</p>
<p>自然语句意思：如果string1＝＝string2，那么执行command</p>
<p>下面再举个能实际应用的if语句．</p>
<p>自然语句：如果输入的参数为３，那么显示＂a＝３＂</p>
<p>计算机语句：</p>
<p>@echo off</p>
<p>if "%1"=="3" echo "a=3"</p>
<p>或者写成</p>
<p>@echo off</p>
<p>if %1==3 echo "a=3"</p>
<p>注意:当要测试的时候,因在cmd底下,输入1.bat 3.因为这里用了是传递参数,具体看文章前部分"批处理文件参数".</p>
<p>第二种：</p>
<p>IF [NOT] EXIST filename command</p>
<p>这条命令用语检测文件是否存在．如果存在，执行command．如果不存在，则什么也不显示．</p>
<p>如：我们想检查e盘根目录下是否有一个叫２.txt的文件．如果存在，则显示exist．如果不存在，则什么也不显示．</p>
<p>批处理命令如下：</p>
<p>@echo off</p>
<p>if exist e:2.txt echo "exist 2.txt"</p>
<p>第三种：</p>
<p>IF [NOT] ERRORLEVEL number command</p>
<p>这个我引用点资料，感觉别人写得更详细，引用部分为橙色字部分：</p>
<p>if errorlevel 待执行的命令</p>
<p>很多DOS程序在运行结束后会返回一个数字值用来表示程序运行的结果(或者状态)，通过if errorlevel命令可以判断程序的返回值，根据不同的返回值来决定执行不同的命令(返回值必须按照从大到小的顺序排列)。如果返回值等于指定的数字，则条件成立，运行命令，否则运行下一句。</p>
<p>如if errorlevel 2 goto x2</p>
<p>==== 注 ===========</p>
<p>返回值从大到小的顺序排列不是必须的, 而只是执行命令为 goto 时的习惯用法, 当使用 set 作为执行命令时, 通常会从小到大顺序排列, 比如需将返回码置入环境变量, 就需使用以下的顺序形式:</p>
<p>if errorlevel 1 set el=1</p>
<p>if errorlevel 2 set el=2</p>
<p>if errorlevel 3 set el=3</p>
<p>if errorlevel 4 set el=4</p>
<p>if errorlevel 5 set el=5</p>
<p>...</p>
<p>当然, 也可以使用以下循环来替代, 原理是一致的:</p>
<p>for %%e in (1 2 3 4 5 6 7 8...) do if errorlevel %%e set el=%%e //此处为一个for循环，后面会继续　　　　　　　　　　　　　　　　　　　　　　　　介绍到的，看不懂可以先跳过去</p>
<p>if errorlevel 比较返回码的判断条件并非等于, 而是大于等于. 由于 goto 的跳转特性, 由小到大排序会导致在较小的返回码处就跳出; 而由于 set命令的 "重复" 赋值特性, 由大到小排序会导致较小的返回码 "覆盖" 较大的返回码.</p>
<p>另外, 虽然 if errorlevel= command 也是有效的命令行, 但也只是 command.com 解释命令行时将 = 作为命令行切分符而忽略掉罢了</p>
<p>choice命令</p>
<p>goto命令</p>
<p>for命令</p>
<p>for命令其实就是一个循环命令,如果我们想重复一个语句,就可以用for命令.通过for命令,可以控制循环的次数等.</p>
<p>语法:</p>
<p>FOR %variable IN (set) DO command [command-parameters]</p>
<p>%variable 指定一个单一字母可替换的参数。</p>
<p>(set) 指定一个或一组文件。可以使用通配符。</p>
<p>command 指定对每个文件执行的命令。</p>
<p>command-parameters</p>
<p>为特定命令指定参数或命令行开关。</p>
<p>在批处理文件中使用 FOR 命令时，指定变量请使用 %%variable</p>
<p>而不要用 %variable。变量名称是区分大小写的，所以 %i 不同于 %I.</p>
<p>不知道你你看懂了没有，其实还是很容易理解的，还是举个例子吧．我想用type打印所有c盘根目录下的bat文件和txt文件．dos底下命令就是　type　＊．bat　＊.txt．先将该文件保存在c盘根目录下,名称为a.bat</p>
<p>用for命令如下：</p>
<p>for %%t in (*.bat *.txt) do type %%t</p>
<p>%%t其实就是代表的一个参数，他的内容在in() 里面括号里的内容.也就是说这句话里的%%t就变成了*.bat *.txt了.do就是做的意思,执行type命令,而type后面是%%t,而%%t又是*.bat *.txt.所以原来这句命令的意思就变成了:</p>
<p>type *.bat *.txt</p>
<p>执行时进cmd,然后到c盘根目录下输入a.bat就可以打印出c盘根目录下所有扩展名为.bat和.txt的文件内容了.</p>
<p>这里要注意：in后面有个空格．</p>
<p>在xp底下,for命令扩展名被起用因此for的功能变得更加强大.下面讲一个真正的循环.</p>
<p>FOR /L %variable IN (start,step,end) DO command [command-parameters]</p>
<p>该集表示以增量形式从开始到结束的一个数字序列。</p>
<p>因此，(1,1,5) 将产生序列 1 2 3 4 5，(5,-1,1) 将产生</p>
<p>序列 (5 4 3 2 1)</p>
<p>里面第一个1在start的位置,意思是起始位置,第2个1在step位置,英文意思是跨步,在这里面的意思是每次增量为1.后面的5在end的位置,意思是结束时的大小.</p>
<p>这句话的意思就是从1(start)开始增加,每次增加1(step),一直到变到5(end)为止.</p>
<p>这个有什么用呢?其实我感觉这个东西的用处还是很大的.举个最简单的例子,我们想重复回显"i am the best"这句话,重复显示10遍.那么for命令如下:</p>
<p>for /L %%e in (1,1,10) do echo "i am the best"</p>
<p>这时,cmd就会重复输入"i am the best"10遍.</p>
<p>===============================================</p>
<p><br>现在不知道你对bat有了什么样的理解，我现在的感觉就是bat就是dos命令的组合，你把dos命令全写进bat命令，只要运行下bat就会挨个执行dos命令，这无疑提供了不少的方便。</p>
<p>下面我再举些实例.</p>
<p>删除默认共享:</p>
<p>对于默认共享不知道你了解多少,反正留着是个隐患,现在唯一的办法好象只能做个bat文件进行删除.命令如下:</p>
<p>net share ipc$ /delete</p>
<p>net share admin$ /delete</p>
<p>net share c$ /delete</p>
<p>net share d$ /delete</p>
<p>net share e$ /delete</p>
<p>&#8230;&#8230;</p>
<p>里面的c　d　e为你的盘符。如果你只有一个分区，那么写到net share c$ /delete为止就可以了。如果你有n个分区，那么就挨个写下去。</p>
<p>net share d$ /delete</p>
<p>net share e$ /delete</p>
<p>net share f$ /delete</p>
<p>net share g$ /delete&#8230;&#8230;</p>
<p>登陆到局域网的机器快捷方式(对方机器有密码且为2000或以上系统)</p>
<p>net use 2.168.0.1 [密码] /user:[用户名]</p>
<p>explorer 2.168.0.1</p>
<p>bat文件备份注册表</p>
<p>set regfile=%date% //设置变量，下面出现%regfile%的都自动替换&#8220;当天date&#8221;</p>
<p>if exist "%regfile%" goto end //如果发现当天date命名的目录，跳到文件尾。</p>
<p>md temp //建temp目录</p>
<p>call 1.bat //调用1.bat</p>
<p>del 1.bat </p>
<p>ren 2.bat 1.bat</p>
<p>ren 3.bat 2.bat</p>
<p>ren 4.bat 3.bat</p>
<p>echo move "%regfile%" temp &gt;4.bat //写 移动&#8220;当天date命名的目录&#8221;到temp的bat文件 。</p>
<p>md "%regfile%" //建当天date命名的目录</p>
<p>cd "%regfile%" //进入</p>
<p>reg export hkcu hkcu.reg //导出注册表</p>
<p>reg export hklm hklm.reg </p>
<p>//HKEY_CURRENT_USER 缩写hkcu 。存放当前用户个人数据</p>
<p>//HKEY_LOCAL_MACHINE 缩写hklm 。系统的核心数据</p>
<p>cd..</p>
<p>deltree /y temp &gt;nul ////返回上级目录 ，删temp文件夹</p>
<p>:end <br></p><img src ="http://www.cppblog.com/momoxiao/aggbug/112390.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/momoxiao/" target="_blank">小默</a> 2010-04-12 23:38 <a href="http://www.cppblog.com/momoxiao/archive/2010/04/12/112390.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[zz]论c++中的单例模式</title><link>http://www.cppblog.com/momoxiao/archive/2010/03/31/111181.html</link><dc:creator>小默</dc:creator><author>小默</author><pubDate>Wed, 31 Mar 2010 08:34:00 GMT</pubDate><guid>http://www.cppblog.com/momoxiao/archive/2010/03/31/111181.html</guid><wfw:comment>http://www.cppblog.com/momoxiao/comments/111181.html</wfw:comment><comments>http://www.cppblog.com/momoxiao/archive/2010/03/31/111181.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/momoxiao/comments/commentRss/111181.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/momoxiao/services/trackbacks/111181.html</trackback:ping><description><![CDATA[　　单例模式也称为单件模式、单子模式。使用单例模式，保证一个类仅有一个实例，并提供一个访问它的全局访问点，该实例被所有程序模块共享。有很多地方需要这样的功能模块，如系统的日志输出等。
<p><font size="3">　　单例模式有许多种实现方法，在C++中，甚至可以直接用一个全局变量做到这一点，但这样的代码显得很不优雅。《设计模式》一书中给出了一种很不错的实现，定义一个单例类，使用类的私有静态指针变量指向类的唯一实例，并用一个公有静态方法获取该实例。如下面的类定义：</font></p>
<p><font size="3">　　class CSingleton:<br>　　{<br>　　// 其它成员<br>　　public:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; static CSingleton * GetInstance()<br>　　 {<br>　　&nbsp;&nbsp; if (m_pInstance == NULL)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_pInstance = new CSingleton();</font><font size="3"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return m_pInstance;<br>}</font></p>
<p><font size="3">　　private:<br>　　 CSingleton(){};<br>　　 static CSingleton * m_pInstance;<br>　　}</font></p>
<p><font size="3">　　单例类CSingleton有以下特征：<br>　　 它有一个指唯一实例的静态指针m_pInstance，并且是私有的。<br>　　 它有一个公有的函数，可以获取这个唯一的实例，并在需要的时候创建该实例。<br>　　 它的构造函数是私有的，这样就不能从别处创建该类的实例。<br>　　大多时候，这样的实现都不会出现问题。有经验的读者可能会问，m_pInstance指向的空间什么时候释放呢？更严重的问题是，这个实例的析构操作什么时候执行？<br>　　如果在类的析构行为中有必须的操作，比如关闭文件，释放外部资源，那么上面所示的代码无法实现这个要求。我们需要一种方法，正常地删除该实例。<br>　　可以在程序结束时调用GetInstance并对返回的指针调用delete操作。这样做可以实现功能，但是不仅很丑陋，而且容易出错。因为这样的附加代码很容易被忘记，而且也很难保证在delete之后，没有代码再调用GetInstance函数。<br>　　一个妥善的方法是让这个类自己知道在合适的时候把自己删除。或者说把删除自己的操作挂在系统中的某个合适的点上，使其在恰当的时候自动被执行。<br>　　我们知道，程序在结束的时候，系统会自动析构所有的全局变量。事实上，系统也会析构所有的类的静态成员变量，就像这些静态成员也是全局变量一样。利用这个特征，我们可以在单例类中定义一个这样的静态成员变量，而它的唯一工作就是在析构函数中删除单例类的实例。如下面的代码中的CGarbo类（Garbo意为垃圾工人）：<br>　　class CSingleton:<br>　　{<br>　　// 其它成员<br>　　public:<br>　　 static CSingleton * GetInstance()<br>　　private:<br>　　 CSingleton(){};<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; static CSingleton * m_pInstance;</font></p>
<p><font size="3">　　class CGarbo // 它的唯一工作就是在析构函数中删除CSingleton的实例<br>　　{<br>　　public:<br>　　 ~CGarbo()<br>　　 {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (CSingleton::m_pInstance)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; delete CSingleton::m_pInstance;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>　　};</font></p>
<p><font size="3">　　 static CGarbo Garbo; // 定义一个静态成员，在程序结束时，系统会调用它的析构函数<br>　　}</font></p>
<p><font size="3">　　类CGarbo被定义为CSingleton的私有内嵌类，以防该类被在其它地方滥用。</font></p>
<p><font size="3">　　在程序运行结束时，系统会调用CSingleton的静态成员Garbo的析构函数，该析构函数会删除单例的唯一实例。<br>　　使用这种方法释放单例对象有以下特征：<br>　　 在单例类内部定义专有的嵌套类。<br>　　 在单例类内定义私有的专门用于释放的静态成员。<br>　　 利用程序在结束时析构全局变量的特性，选择最终的释放时机。<br>　　 使用单例的代码不需要任何操作，不必关心对象的释放。</font></p>
<p><font size="3">----------------------------------------------------------------------------------------------------------------------------------</font></p>
<p><font size="3">以上就是转载的一个c++中的单例模式。在这个里面涉及到了m_pInstance指向的空间什么时候释放呢？更严重的问题是，这个实例的析构操作什么时候执行？后面使用的内嵌类方法个人觉得并不是很好，如果又要添加另一个单例类是不是也要在内嵌类中删除此单例类的实例呢？如果我要添加100个呢？你看有多麻烦啊！</font></p>
<p>&nbsp;</p>
<p><font size="3">以下是对以前项目中使用到的单例模式的提取：</font></p>
<p><font size="3">#include &lt;iostream&gt; <br>using namespace std;</font></p>
<p><font size="3">类的定义应该是在*.h文件中的，这里偷懒了</font></p>
<p><font size="3">class Singleton <br>{ <br>public:<br>Singleton();<br>static Singleton *GetInstance() ;<br>}; </font></p>
<p><font size="3">以下应该在*.cpp文件中</font></p>
<p><font size="3">static Singleton *instance = NULL;</font></p>
<p><font size="3">Singleton::Singleton() <br>{ <br>instance = this;<br>} </font></p>
<p><font size="3">Singleton *Singleton::GetInstance() <br>{ <br>return instance; <br>} </font></p>
<p><font size="3">以下是在使用的地方</font></p>
<p><font size="3">int main() <br>{ <br>Singleton singles;</font></p>
<p><font size="3">Singleton *p1 = Singleton::GetInstance(); <br>Singleton *p2 = Singleton::GetInstance(); </font></p>
<p><font size="3">if (p1 == p2) <br>{ <br>&nbsp;&nbsp; cout &lt;&lt;"Two objects is the same instance" &lt;&lt;endl; <br>} </font></p>
<p><font size="3">return 0; <br>} <br><br>在以上的程序中，看到这个和zt中的是类似的。也有个同样的问题出现了。在这个里面涉及到了m_pInstance指向的空间什么时候释放呢？更严重的问题是，这个实例的析构操作什么时候执行？哈哈，这个呢在项目中是有处理的，因为是这个单例对象生成后了是要保存在一个容器中的，而且所有的类似单例是对同一个基类的继承，所以利用多态特点vector&lt;type*&gt;再加一个迭代器就可以很容易对所有的这些单例对象进行删除操作了。这个应该说是项目在设计的时候就考虑到的了。</font>
</p>
<p>&nbsp;</p>
<p>这个，还有没有更好、一劳永逸的方法呢？朋友看到后告诉了个他看到的很牛的单例写法，不得不佩服，真的很牛。后来在CSND论坛上的一个帖子中也看到了某位多线程高手也贴出了这种方法。</p>
<p>#include &lt;iostream&gt;</p>
<p>using namespace std;</p>
<p>class Singleton <br>{ <br>private:<br>Singleton(){}</p>
<p>public:&nbsp;&nbsp;</p>
<p>static Singleton *GetInstance() <br>{ <br>&nbsp;&nbsp; static Singleton singles;//在此定义静态对象<br>&nbsp;&nbsp; return &amp;singles; <br>} <br><br>};</p>
<p>int main() <br>{ <br>Singleton *p1 = Singleton::GetInstance(); <br>Singleton *p2 = Singleton::GetInstance();</p>
<p>if (p1 == p2) <br>{ <br>&nbsp;&nbsp; cout &lt;&lt;"Two objects is the same instance" &lt;&lt;endl; <br>} <br>return 0; <br>}</p>
<p>&nbsp;</p>
<p>hoho，而后继续了下，为了方便，多个写成了模板类形式，使得继承自单例模式的自动为单例模式。</p>
<p>#include &lt;iostream&gt; <br>#include &lt;assert.h&gt;</p>
<p>using namespace std;</p>
<p>template&lt;class type&gt;<br>class Singleton <br>{ <br>public:&nbsp;&nbsp; <br>static type *GetInstance() <br>{ <br>&nbsp;&nbsp; static type singles;<br>&nbsp;&nbsp; return &amp;singles; <br>} <br>protected:<br>Singleton(){}<br>};</p>
<p>class resourcemanage : public Singleton&lt;resourcemanage&gt;<br>{<br>public:<br>resourcemanage(){}<br>void showlog()<br>{<br>&nbsp;&nbsp; cout&lt;&lt;"resoucemange"&lt;&lt;endl;<br>}<br>};</p>
<p>class mange : public Singleton&lt;mange&gt;<br>{<br>public:<br>mange(){}<br>void showtexer()<br>{<br>&nbsp;&nbsp; cout&lt;&lt;"show texture"&lt;&lt;endl;<br>}<br>};<br>int main() <br>{ <br>//Singleton *singles = new Singleton;<br>resourcemanage *p1 = resourcemanage::GetInstance(); <br>resourcemanage *p2 = resourcemanage::GetInstance();</p>
<p>mange::GetInstance()-&gt;showtexer();</p>
<p>p2-&gt;showlog();</p>
<p>if (p1 == p2) <br>{ <br>&nbsp;&nbsp; cout &lt;&lt;"Two objects is the same instance" &lt;&lt;endl; <br>} <br>return 0; <br>}</p>
<p>&nbsp;</p>
<p>hoho，一个单例模式竟然能引出这麽多的东东，真是学习了不少啊，哈哈哈哈哈哈！</p>
<p>最后贴下csdn关于这个单例模式的牛人讨论帖：</p>
<p><a href="http://topic.csdn.net/u/20080218/08/291c52f9-5ed0-4f7c-abeb-69f691c2e7f4.html"><u><font color="#800080">http://topic.csdn.net/u/20080218/08/291c52f9-5ed0-4f7c-abeb-69f691c2e7f4.html</font></u></a><br><br>静态成员变量必须要在具体的cpp文件中进行定义，类中出现的静态成员变量只表示一种声明。 </p><img src ="http://www.cppblog.com/momoxiao/aggbug/111181.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/momoxiao/" target="_blank">小默</a> 2010-03-31 16:34 <a href="http://www.cppblog.com/momoxiao/archive/2010/03/31/111181.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>NSIS制作安装文件全攻略（一） zz</title><link>http://www.cppblog.com/momoxiao/archive/2010/02/06/107327.html</link><dc:creator>小默</dc:creator><author>小默</author><pubDate>Fri, 05 Feb 2010 16:01:00 GMT</pubDate><guid>http://www.cppblog.com/momoxiao/archive/2010/02/06/107327.html</guid><wfw:comment>http://www.cppblog.com/momoxiao/comments/107327.html</wfw:comment><comments>http://www.cppblog.com/momoxiao/archive/2010/02/06/107327.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/momoxiao/comments/commentRss/107327.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/momoxiao/services/trackbacks/107327.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: ;&nbsp;NSIS&nbsp;安装脚本示例&nbsp;by&nbsp;haijd;&nbsp;参考:&nbsp;http://www.yonsm.net/read.php?58;#=========================================================================================;&nbsp;头文件!include&...&nbsp;&nbsp;<a href='http://www.cppblog.com/momoxiao/archive/2010/02/06/107327.html'>阅读全文</a><img src ="http://www.cppblog.com/momoxiao/aggbug/107327.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/momoxiao/" target="_blank">小默</a> 2010-02-06 00:01 <a href="http://www.cppblog.com/momoxiao/archive/2010/02/06/107327.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>