﻿<?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>BlogJava-罗明的博客-随笔分类-Study</title><link>http://www.blogjava.net/Andyluo/category/1765.html</link><description>&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;font color="blue"&gt;锻炼身体、提升技能、修身养性&lt;/font&gt;&lt;br&gt;
讨论Eclipse, Java, Linux, Google产品&lt;br&gt;
&lt;/td&gt;&lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/td&gt;&lt;td&gt;
&lt;!-- google script --&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</description><language>zh-cn</language><lastBuildDate>Thu, 22 May 2008 22:09:06 GMT</lastBuildDate><pubDate>Thu, 22 May 2008 22:09:06 GMT</pubDate><ttl>60</ttl><item><title>Python编程谜题-5</title><link>http://www.blogjava.net/Andyluo/archive/2008/05/22/python-Puzzle-5.html</link><dc:creator>罗明</dc:creator><author>罗明</author><pubDate>Thu, 22 May 2008 09:45:00 GMT</pubDate><guid>http://www.blogjava.net/Andyluo/archive/2008/05/22/python-Puzzle-5.html</guid><wfw:comment>http://www.blogjava.net/Andyluo/comments/202227.html</wfw:comment><comments>http://www.blogjava.net/Andyluo/archive/2008/05/22/python-Puzzle-5.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Andyluo/comments/commentRss/202227.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Andyluo/services/trackbacks/202227.html</trackback:ping><description><![CDATA[<p><strong>应用python的pickle模块从序列化文件中构造对象，根据对象的构造解开谜题</strong></p>
<p>详细描述 :</p>
<p><a title="http://www.pythonchallenge.com/pc/def/peak.html" href="http://www.pythonchallenge.com/pc/def/peak.html">http://www.pythonchallenge.com/pc/def/peak.html</a></p>
<p>(peak hell连读发音类似pickle，谜题就是pickle模块的应用了)</p>
<p>&nbsp;</p>
<p>解决方案代码: <br />
</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;pprint,pickle,sys<br />
<br />
pfile&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;open(</span><span style="color: #800000;">'</span><span style="color: #800000;">banner.p</span><span style="color: #800000;">'</span><span style="color: #000000;">)<br />
data&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;pickle.load(pfile)<br />
</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;row&nbsp;</span><span style="color: #0000ff;">in</span><span style="color: #000000;">&nbsp;data:<br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;item&nbsp;</span><span style="color: #0000ff;">in</span><span style="color: #000000;">&nbsp;row:<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;index&nbsp;</span><span style="color: #0000ff;">in</span><span style="color: #000000;">&nbsp;range(item[</span><span style="color: #000000;">1</span><span style="color: #000000;">]):<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sys.stdout.write(item[0])<br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">print</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">''</span><span style="color: #000000;"><br />
pfile.close()</span></div>
<p>
</p>
<p>输出的对象构造：</p>
<p><img alt="" src="http://www.blogjava.net/images/blogjava_net/andyluo/channel.JPG" height="150" width="362" /><br />
</p>
<img src ="http://www.blogjava.net/Andyluo/aggbug/202227.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Andyluo/" target="_blank">罗明</a> 2008-05-22 17:45 <a href="http://www.blogjava.net/Andyluo/archive/2008/05/22/python-Puzzle-5.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>编程谜题-4</title><link>http://www.blogjava.net/Andyluo/archive/2008/05/09/pythonPuzzle4.html</link><dc:creator>罗明</dc:creator><author>罗明</author><pubDate>Fri, 09 May 2008 06:32:00 GMT</pubDate><guid>http://www.blogjava.net/Andyluo/archive/2008/05/09/pythonPuzzle4.html</guid><wfw:comment>http://www.blogjava.net/Andyluo/comments/199490.html</wfw:comment><comments>http://www.blogjava.net/Andyluo/archive/2008/05/09/pythonPuzzle4.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Andyluo/comments/commentRss/199490.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Andyluo/services/trackbacks/199490.html</trackback:ping><description><![CDATA[Follow the URL chain to get the result (the chain may contain over 300 URLs......)<br />
<br />
谜题详细描述：http://www.pythonchallenge.com/pc/def/linkedlist.php<br />
<br />
Python解决方案：<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;urllib<br />
<br />
nothing&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">"</span><span style="color: #800000;">12345</span><span style="color: #800000;">"</span><span style="color: #000000;"><br />
ii&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;">&nbsp;ii</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">401</span><span style="color: #000000;">:<br />
&nbsp;&nbsp;source&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;urllib.urlopen(</span><span style="color: #800000;">"</span><span style="color: #800000;">http://www.pythonchallenge.com</span><span style="color: #800000;">"</span><span style="color: #000000;">&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">"</span><span style="color: #800000;">/pc/def/linkedlist.php?nothing=</span><span style="color: #800000;">"</span><span style="color: #000000;">+</span><span style="color: #000000;">nothing).read()<br />
&nbsp;&nbsp;nothing</span><span style="color: #000000;">=</span><span style="color: #000000;">filter(str.isdigit,&nbsp;source)<br />
<br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">print</span><span style="color: #000000;">&nbsp;nothing<br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;source&nbsp;</span><span style="color: #000000;">!=</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">"</span><span style="color: #800000;">and&nbsp;the&nbsp;next&nbsp;nothing&nbsp;is&nbsp;</span><span style="color: #800000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;nothing:<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">print</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">"</span><span style="color: #800000;">source is not: and&nbsp;the&nbsp;next&nbsp;nothing&nbsp;is&nbsp;</span><span style="color: #800000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;nothing<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">print</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">"</span><span style="color: #800000;">source&nbsp;is</span><span style="color: #800000;">: "</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;source<br />
&nbsp;&nbsp;&nbsp;&nbsp;nothing&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;raw_input(</span><span style="color: #800000;">"</span><span style="color: #800000;">select&nbsp;which&nbsp;number?</span><span style="color: #800000;">"</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: #800000;">"</span><span style="color: #800000;">you&nbsp;set&nbsp;</span><span style="color: #800000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;nothing&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">"</span><span style="color: #800000;">&nbsp;as&nbsp;nothing</span><span style="color: #800000;">"</span><span style="color: #000000;"><br />
&nbsp;&nbsp;ii</span><span style="color: #000000;">+=</span><span style="color: #000000;">1</span><span style="color: #000000;"><br />
</span></div>
<br />
<br />

<img src ="http://www.blogjava.net/Andyluo/aggbug/199490.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Andyluo/" target="_blank">罗明</a> 2008-05-09 14:32 <a href="http://www.blogjava.net/Andyluo/archive/2008/05/09/pythonPuzzle4.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>编程谜题-3</title><link>http://www.blogjava.net/Andyluo/archive/2008/05/08/pythonPuzzle3.html</link><dc:creator>罗明</dc:creator><author>罗明</author><pubDate>Thu, 08 May 2008 04:50:00 GMT</pubDate><guid>http://www.blogjava.net/Andyluo/archive/2008/05/08/pythonPuzzle3.html</guid><wfw:comment>http://www.blogjava.net/Andyluo/comments/199207.html</wfw:comment><comments>http://www.blogjava.net/Andyluo/archive/2008/05/08/pythonPuzzle3.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Andyluo/comments/commentRss/199207.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Andyluo/services/trackbacks/199207.html</trackback:ping><description><![CDATA[从一大堆字母里找出两边都刚好有3个大写字母的小写字母<br />
详细描述：<a href="http://www.pythonchallenge.com/pc/def/equality.html">http://www.pythonchallenge.com/pc/def/equality.html</a><br />
<br />
解决方案：<br />
<br />
Python：<br />
&gt;&gt;&gt; import re<br />
&gt;&gt;&gt; re.findall(r'[a-z][A-Z][A-Z][A-Z][a-z][A-Z][A-Z][A-Z][a-z]', text)
<img src ="http://www.blogjava.net/Andyluo/aggbug/199207.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Andyluo/" target="_blank">罗明</a> 2008-05-08 12:50 <a href="http://www.blogjava.net/Andyluo/archive/2008/05/08/pythonPuzzle3.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>编程谜题 - 2</title><link>http://www.blogjava.net/Andyluo/archive/2008/05/07/pythonPuzzle2.html</link><dc:creator>罗明</dc:creator><author>罗明</author><pubDate>Wed, 07 May 2008 08:11:00 GMT</pubDate><guid>http://www.blogjava.net/Andyluo/archive/2008/05/07/pythonPuzzle2.html</guid><wfw:comment>http://www.blogjava.net/Andyluo/comments/198994.html</wfw:comment><comments>http://www.blogjava.net/Andyluo/archive/2008/05/07/pythonPuzzle2.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Andyluo/comments/commentRss/198994.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Andyluo/services/trackbacks/198994.html</trackback:ping><description><![CDATA[谜题描述：<a title="http://www.pythonchallenge.com/pc/def/ocr.html" href="http://www.pythonchallenge.com/pc/def/ocr.html">http://www.pythonchallenge.com/pc/def/ocr.html</a><br />
从一大堆乱码中找出可以理解的信息（字母）<br />
<br />
Java解决方案：<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;Test&nbsp;{<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;main(String[]&nbsp;args)&nbsp;</span><span style="color: #0000ff;">throws</span><span style="color: #000000;">&nbsp;Exception&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;URL&nbsp;url&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;URL(</span><span style="color: #000000;">"</span><span style="color: #000000;">http://www.pythonchallenge.com</span><span style="color: #000000;">"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; + "</span><span style="color: #000000;">/pc/def/ocr.html</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BufferedReader&nbsp;reader&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;BufferedReader(</span><span style="color: #0000ff;">new</span><span style="color: #000000;"> <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">InputStreamReader(url.openStream()));</span><br />
<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; StringBuffer&nbsp;sb&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;StringBuffer();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;reader.read();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">while</span><span style="color: #000000;">(i&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;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">((i&nbsp;</span><span style="color: #000000;">&gt;=</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">)</span><span style="color: #000000;">'</span><span style="color: #000000;">A</span><span style="color: #000000;">'</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">&nbsp;i&nbsp;</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">)</span><span style="color: #000000;">'</span><span style="color: #000000;">Z</span><span style="color: #000000;">'</span><span style="color: #000000;">) </span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">||</span><span style="color: #000000;">&nbsp;(i&nbsp;</span><span style="color: #000000;">&gt;=</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">)</span><span style="color: #000000;">'</span><span style="color: #000000;">a</span><span style="color: #000000;">'</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">&nbsp;i&nbsp;</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">)</span><span style="color: #000000;">'</span><span style="color: #000000;">z</span><span style="color: #000000;">'</span><span style="color: #000000;">))</span><br />
<span style="color: #000000;">
&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;&nbsp;&nbsp;&nbsp;&nbsp;sb.append((</span><span style="color: #0000ff;">char</span><span style="color: #000000;">)i);<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;i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;reader.read();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reader.close();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;source&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;sb.toString();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp;</span> <span style="color: #008000;">//</span><span style="color: #008000;">页面源码中最后一个单词是below</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">source.substring(source.indexOf(</span><span style="color: #000000;">"</span><span style="color: #000000;">below</span><span style="color: #000000;">"</span><span style="color: #000000;">)&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">5</span><span style="color: #000000;">)</span><br />
<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}</span></div>
<br />
附Python和Shell：<br />
<br />
Python:<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">&gt;&gt;&gt;</span><span style="color: #000000;">&nbsp;text&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">"""</span><span style="color: #800000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;copy&nbsp;and&nbsp;paste&gt;<br />
</span><span style="color: #800000;">"""</span><span style="color: #000000;"><br />
</span><span style="color: #000000;">&gt;&gt;&gt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;string<br />
</span><span style="color: #000000;">&gt;&gt;&gt;</span><span style="color: #000000;">&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;text:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;i&nbsp;</span><span style="color: #0000ff;">in</span><span style="color: #000000;">&nbsp;string.ascii_letters:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">print</span><span style="color: #000000;">&nbsp;i,</span></div>
<br />
Shell:<br />
$ curl <a href="http://www.pythonchallenge.com/pc/def/ocr.html" class="external" rel="nofollow">http://www.pythonchallenge.com/pc/def/ocr.html</a> | grep -o [a-z]<br />
<img src ="http://www.blogjava.net/Andyluo/aggbug/198994.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Andyluo/" target="_blank">罗明</a> 2008-05-07 16:11 <a href="http://www.blogjava.net/Andyluo/archive/2008/05/07/pythonPuzzle2.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>编程谜题1</title><link>http://www.blogjava.net/Andyluo/archive/2008/05/06/pythonTrick1.html</link><dc:creator>罗明</dc:creator><author>罗明</author><pubDate>Tue, 06 May 2008 10:02:00 GMT</pubDate><guid>http://www.blogjava.net/Andyluo/archive/2008/05/06/pythonTrick1.html</guid><wfw:comment>http://www.blogjava.net/Andyluo/comments/198768.html</wfw:comment><comments>http://www.blogjava.net/Andyluo/archive/2008/05/06/pythonTrick1.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Andyluo/comments/commentRss/198768.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Andyluo/services/trackbacks/198768.html</trackback:ping><description><![CDATA[谜题描述：<a href="http://www.pythonchallenge.com/pc/def/map.html">http://www.pythonchallenge.com/pc/def/map.html</a><br />
<br />
Java解决方案： <br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080;">&nbsp;1</span>&nbsp;<span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;Test&nbsp;{<br />
</span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;main(String[]&nbsp;args)&nbsp;{<br />
</span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;a&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">g&nbsp;fmnc&nbsp;wms&nbsp;bgblr&nbsp;rpylqjyrc&nbsp;gr&nbsp;zw&nbsp;fylb.&nbsp;rfyrq "<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; + "</span><span style="color: #000000;">ufyr&nbsp;amknsrcpq </span><span style="color: #000000;">ypc&nbsp;dmp. </span><span style="color: #000000;">bmgle&nbsp;gr&nbsp;gl&nbsp;zw&nbsp;fylb "<br />
</span><span style="color: #000000;">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">+ "</span><span style="color: #000000;">gq&nbsp;glcddgagclr&nbsp;ylb&nbsp;rfyr'q&nbsp;ufw&nbsp;rfgq </span><span style="color: #000000;">rcvr&nbsp;gq </span><span style="color: #000000;">"<br />
</span><span style="color: #000000;">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">+ "</span><span style="color: #000000;">qm&nbsp;jmle.&nbsp;sqgle&nbsp;qrpgle.kyicrpylq()</span><span style="color: #000000;"> gq&nbsp;pcamkkclbcb. </span><span style="color: #000000;">"</span><span style="color: #000000;"><br />
</span><span style="color: #000000;">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">+ "</span><span style="color: #000000;">lmu&nbsp;ynnjw&nbsp;ml&nbsp;rfc&nbsp;spj.</span><span style="color: #000000;">";</span><br />
<span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">char</span><span style="color: #000000;">[]&nbsp;ac&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;a.toCharArray();<br />
</span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;zi&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">)</span><span style="color: #000000;">'</span><span style="color: #000000;">z</span><span style="color: #000000;">'</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;ai&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">)</span><span style="color: #000000;">'</span><span style="color: #000000;">a</span><span style="color: #000000;">'</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;index</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;&nbsp;index</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">ac.length;&nbsp;index</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br />
</span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
</span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;aci&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">)ac[index];<br />
</span><span style="color: #008080;">10</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(aci&nbsp;</span><span style="color: #000000;">&gt;=</span><span style="color: #000000;">&nbsp;ai&nbsp;</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">&nbsp;aci&nbsp;</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">&nbsp;zi)<br />
</span><span style="color: #008080;">11</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
</span><span style="color: #008080;">12</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;aci2&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">)ac[index]&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">2</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">13</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">14</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print((</span><span style="color: #0000ff;">char</span><span style="color: #000000;">)((aci2</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">zi)</span><span style="color: #000000;">?</span><span style="color: #000000;">(aci2</span><span style="color: #000000;">%</span><span style="color: #000000;">(zi</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">)</span><span style="color: #000000;">+</span><span style="color: #000000;">ai):aci2));<br />
</span><span style="color: #008080;">15</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">16</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">17</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
</span><span style="color: #008080;">18</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print((</span><span style="color: #0000ff;">char</span><span style="color: #000000;">)aci);<br />
</span><span style="color: #008080;">19</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">20</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">21</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">22</span>&nbsp;<span style="color: #000000;">}</span></div>
<br />
附上Python和Shell解决方案：<br />
<br />
Python:<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080;">1</span>&nbsp;<span style="color: #000000;">&gt;&gt;&gt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;string<br />
</span><span style="color: #008080;">2</span>&nbsp;<span style="color: #000000;">&gt;&gt;&gt;</span><span style="color: #000000;">&nbsp;text&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">"""</span><span style="color: #800000;">g&nbsp;fmnc&nbsp;wms&nbsp;bgblr&nbsp;rpylqjyrc&nbsp;gr&nbsp;zw&nbsp;fylb.&nbsp;rfyrq&nbsp;ufyr<br />
</span><span style="color: #008080;">3</span>&nbsp;<span style="color: #800000;">&nbsp;amknsrcpq&nbsp;ypc&nbsp;dmp.&nbsp;bmgle&nbsp;gr&nbsp;gl&nbsp;zw&nbsp;fylb&nbsp;gq&nbsp;glcddgagclr&nbsp;ylb&nbsp;rfyr'q<br />
</span><span style="color: #008080;">4</span>&nbsp;<span style="color: #800000;">&nbsp;&nbsp;ufw&nbsp;rfgq&nbsp;rcvr&nbsp;gq&nbsp;qm&nbsp;jmle.&nbsp;sqgle&nbsp;qrpgle.kyicrpylq()&nbsp;gq&nbsp;pcamkkclbcb.<br />
</span><span style="color: #008080;">5</span>&nbsp;<span style="color: #800000;">&nbsp;lmu&nbsp;ynnjw&nbsp;ml&nbsp;rfc&nbsp;spj.</span><span style="color: #800000;">"""</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">6</span>&nbsp;<span style="color: #000000;">&gt;&gt;&gt;</span><span style="color: #000000;">&nbsp;table&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;string.maketrans(<br />
</span><span style="color: #008080;">7</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;string.ascii_lowercase,<br />
</span><span style="color: #008080;">8</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;string.ascii_lowercase[</span><span style="color: #000000;">2</span><span style="color: #000000;">:]</span><span style="color: #000000;">+</span><span style="color: #000000;">string.ascii_lowercase[:</span><span style="color: #000000;">2</span><span style="color: #000000;">])</span></div>
<br />
Shell:<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">$&nbsp;tr&nbsp;[a</span><span style="color: #000000;">-</span><span style="color: #000000;">z]&nbsp;[c</span><span style="color: #000000;">-</span><span style="color: #000000;">za</span><span style="color: #000000;">-</span><span style="color: #000000;">b]</span></div>
<br />
<img src ="http://www.blogjava.net/Andyluo/aggbug/198768.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Andyluo/" target="_blank">罗明</a> 2008-05-06 18:02 <a href="http://www.blogjava.net/Andyluo/archive/2008/05/06/pythonTrick1.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何入门和学习Oracle</title><link>http://www.blogjava.net/Andyluo/archive/2007/10/24/How-To-Study-Oracle.html</link><dc:creator>罗明</dc:creator><author>罗明</author><pubDate>Wed, 24 Oct 2007 08:21:00 GMT</pubDate><guid>http://www.blogjava.net/Andyluo/archive/2007/10/24/How-To-Study-Oracle.html</guid><wfw:comment>http://www.blogjava.net/Andyluo/comments/155622.html</wfw:comment><comments>http://www.blogjava.net/Andyluo/archive/2007/10/24/How-To-Study-Oracle.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/Andyluo/comments/commentRss/155622.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Andyluo/services/trackbacks/155622.html</trackback:ping><description><![CDATA[<span style="color: #000000; font-family: 草檀斋毛泽东字体;">刚才有朋友问我推荐几本学习Oracle的书，我想了想，以前学习还真没系统的看过书，基本都是项目过程中慢慢熟悉。<br />
<br />
没什么书可推荐的，所以就给他提了几点建议^_^：<br />
<br />
1、到网上找篇安装的文章，对照着装好，遇到问题就google错误信息，解决问题。
<br />
<br />
2、安装完后做个小项目，做的过程中遇到问题就google查资料，解决。 <br />
<br />
3、做完后想想有什么高级功能可以实现，添加功能，改进。 </span><span style="color: #000000; font-family: 草檀斋毛泽东字体;">这个高级功能最好跟分析数据库信息，导出信息报表有关，这样会用到比较多的oracle特定的sql语句。<br />
<br />
</span><span style="color: #000000; font-family: MS Shell Dlg;">问：现在安装那个版本？10还是9？<br />
</span>答：9.2的好，网上资料多，现在用的也最多<br />
<br />
不需要看书的，要买的话，随便找本介绍9.2的小书；<br />
<br />
主要是实践，做项目，网上查资料！<br />
<img src ="http://www.blogjava.net/Andyluo/aggbug/155622.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Andyluo/" target="_blank">罗明</a> 2007-10-24 16:21 <a href="http://www.blogjava.net/Andyluo/archive/2007/10/24/How-To-Study-Oracle.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OSGi框架规范第4版 之 简要介绍</title><link>http://www.blogjava.net/Andyluo/archive/2007/06/29/OSGi_Introduction.html</link><dc:creator>罗明</dc:creator><author>罗明</author><pubDate>Fri, 29 Jun 2007 06:18:00 GMT</pubDate><guid>http://www.blogjava.net/Andyluo/archive/2007/06/29/OSGi_Introduction.html</guid><wfw:comment>http://www.blogjava.net/Andyluo/comments/127065.html</wfw:comment><comments>http://www.blogjava.net/Andyluo/archive/2007/06/29/OSGi_Introduction.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Andyluo/comments/commentRss/127065.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Andyluo/services/trackbacks/127065.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Eclipse从3.0版本开始采用基于OSGi的插件体系结构。这篇文章简要介绍OSGi框架的功能架构。OSGi框架是OSGi服务平台规范的核心部分。该框架提供了一个大众化，安全，可管理的平台，可以支持可扩展可下载应用插件的部署，我们称这些应用插件为Bundle。&nbsp;&nbsp;<a href='http://www.blogjava.net/Andyluo/archive/2007/06/29/OSGi_Introduction.html'>阅读全文</a><img src ="http://www.blogjava.net/Andyluo/aggbug/127065.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Andyluo/" target="_blank">罗明</a> 2007-06-29 14:18 <a href="http://www.blogjava.net/Andyluo/archive/2007/06/29/OSGi_Introduction.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSP标签使用和表单参数中文问题的一些snippets</title><link>http://www.blogjava.net/Andyluo/archive/2007/01/09/tag_encoding_snippets.html</link><dc:creator>罗明</dc:creator><author>罗明</author><pubDate>Tue, 09 Jan 2007 13:28:00 GMT</pubDate><guid>http://www.blogjava.net/Andyluo/archive/2007/01/09/tag_encoding_snippets.html</guid><wfw:comment>http://www.blogjava.net/Andyluo/comments/92744.html</wfw:comment><comments>http://www.blogjava.net/Andyluo/archive/2007/01/09/tag_encoding_snippets.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Andyluo/comments/commentRss/92744.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Andyluo/services/trackbacks/92744.html</trackback:ping><description><![CDATA[
		<p>         在《J2EE》课程实验里写了些jsp和servlet代码，将遇到的一些问题和解决方法贴上，自己mark一下 &amp;&amp; 供大家参考<br /><br />1、jsp:usebean标签中， 若引用的bean不存在，会自动调用默认构造器生成一个javabean实例，所以不要在servlet里再用session.getAttribute来判断bean是否为空（因为肯定不为空），应该判断里面的字段是否为null或为初始化状态。</p>
		<p>2、jsp:usebean 的class属性应该是类的全名（包括包名）。在前面&lt;%@ import&gt;中import的包，在tag里不起作用，只对jsp里面的java代码有用，所以tag里要使用类的全名</p>
		<p>3、post时如果表单里有中文，会出现中文乱码，在servlet里调用request.getParameter之前执行request.setCharacterEncoding("gb2312");就可以正确识别和显示中文了；<br /><br />如果是url中用中文参数，如someaction.jsp?q=中文问题，则要加一个filter来setEncoding，因为post和get传送参数的处理方式不一样。url中包含中文参数的设置参考：<a target="_blank" href="http://www.itet.cn/0512456328001529/JSP/0691214511318687.html">http://www.itet.cn/0512456328001529/JSP/0691214511318687.html</a></p>
<img src ="http://www.blogjava.net/Andyluo/aggbug/92744.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Andyluo/" target="_blank">罗明</a> 2007-01-09 21:28 <a href="http://www.blogjava.net/Andyluo/archive/2007/01/09/tag_encoding_snippets.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用Perl实现HTTP网络下载程序</title><link>http://www.blogjava.net/Andyluo/archive/2007/01/03/perlDown.html</link><dc:creator>罗明</dc:creator><author>罗明</author><pubDate>Wed, 03 Jan 2007 13:00:00 GMT</pubDate><guid>http://www.blogjava.net/Andyluo/archive/2007/01/03/perlDown.html</guid><wfw:comment>http://www.blogjava.net/Andyluo/comments/91628.html</wfw:comment><comments>http://www.blogjava.net/Andyluo/archive/2007/01/03/perlDown.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Andyluo/comments/commentRss/91628.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Andyluo/services/trackbacks/91628.html</trackback:ping><description><![CDATA[
		<p>
		</p>
		<p>先讲讲做这个小程序的动机吧，昨天看了下<a title="哈工大软件学院新闻列表" href="http://software.hit.edu.cn/ch/allnews.aspx" target="_blank">以前学院的新闻</a>，没什么更新，但发现列表很长，保留了2003年1月至今的所有新闻。<br /><br />这个新闻列表是大学期间我们了解学院信息的主要来源，都养成了每天先看新闻再看<a title="哈工大紫丁香BBS" href="http://bbs.hit.edu.cn/" target="_blank">BBS</a>的习惯。在大连实习期间更是如此，也算是产生感情了^__^，所以。。。决定把这700+新闻全部保存下来...<br /><br /><strong>需求：指定一个网址，将这个网页和里面所有的子链接页面都下载下来，保存到指定的文件夹中。<br /><br /></strong>如下图所示：<br /><img alt="news.jpg" src="http://www.blogjava.net/images/blogjava_net/andyluo/news.jpg" border="0" height="316" width="559" /><br /><br /><br />需求有了，怎么完成呢？用<a href="http://www.xunlei.com" target="_blank">迅雷</a>下载全部链接？嗯，这是个好主意，（我确实也这么做了一次，连接数开得太多了，差点被封orz ），但咱们是搞软件的@_@，这个小功能是不是写个程序就能搞定，用<a href="http://www.java.net" target="_blank">Java</a>？想到那一堆Stream的封装（new BufferedReader(new BufferedOutputStream(new FileOutputStream(new File("blabla.html"))))）...我就头晕。<br /><br />小程序用脚本语言？应该不错！<br /><br />用<a href="http://www.perl.com" target="_blank">Perl</a>还是Python？。。。经过一番网上查询论证，似乎：Perl语法复杂，但简练，API库也超级多；Python语法清晰易懂，有点像Java，适合开发大型应用。<br /><br />Java是我的最爱，也算熟悉了，就学点bt的吧，用Perl<br /><br />完成代码期间主要参考了<a href="http://perldoc.perl.org/index-language.html" target="_blank">Perl文档</a>中URL，HTML::LinkExtor，HTTP::Request的用法，<a href="http://www.perlchina.org/" target="_blank">Perl中国</a>的一篇文章<a href="http://www.perlchina.org/archive/archive.php?action=archive&amp;page=15" target="_blank">《LWP与WEB的基本使用》</a>，还占用了J2EE的上课时间来编写程序。。。<br /><br /></p>
		<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: rgb(238, 238, 238);">
				<span style="color: rgb(0, 128, 128);"> 1</span>
				<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<span style="color: rgb(0, 128, 0);">#</span>
				<span style="color: rgb(0, 128, 0);">
						<br />
				</span>
				<span style="color: rgb(0, 128, 128);"> 2</span>
				<span style="color: rgb(0, 128, 0);">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /># Copyright (C) 2007 罗明 &lt;andyluo197(at)gmail.com&gt;<br /></span>
				<span style="color: rgb(0, 128, 128);"> 3</span>
				<span style="color: rgb(0, 128, 0);">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />#</span>
				<span style="color: rgb(0, 128, 0);">
						<br />
				</span>
				<span style="color: rgb(0, 128, 128);"> 4</span>
				<span style="color: rgb(0, 128, 0);">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="color: rgb(0, 0, 0);">
						<br />
				</span>
				<span style="color: rgb(0, 128, 128);"> 5</span>
				<span style="color: rgb(0, 0, 0);">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="color: rgb(0, 0, 255);">use</span>
				<span style="color: rgb(0, 0, 0);"> strict </span>
				<span style="font-weight: bold; color: rgb(0, 0, 0);">"</span>
				<span style="font-weight: bold; color: rgb(0, 0, 0);">vars</span>
				<span style="font-weight: bold; color: rgb(0, 0, 0);">"</span>
				<span style="color: rgb(0, 0, 0);">; </span>
				<span style="color: rgb(0, 128, 0);">#</span>
				<span style="color: rgb(0, 128, 0);">严格遵循my scope定义</span>
				<span style="color: rgb(0, 128, 0);">
						<br />
				</span>
				<span style="color: rgb(0, 128, 128);"> 6</span>
				<span style="color: rgb(0, 128, 0);">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="color: rgb(0, 0, 0);">
						<br />
				</span>
				<span style="color: rgb(0, 128, 128);"> 7</span>
				<span style="color: rgb(0, 0, 0);">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="color: rgb(0, 0, 255);">use</span>
				<span style="color: rgb(0, 0, 0);"> LWP</span>
				<span style="color: rgb(0, 0, 0);">::</span>
				<span style="color: rgb(0, 0, 0);">Simple;<br /></span>
				<span style="color: rgb(0, 128, 128);"> 8</span>
				<span style="color: rgb(0, 0, 0);">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="color: rgb(0, 0, 255);">use</span>
				<span style="color: rgb(0, 0, 0);"> HTML</span>
				<span style="color: rgb(0, 0, 0);">::</span>
				<span style="color: rgb(0, 0, 0);">LinkExtor;<br /></span>
				<span style="color: rgb(0, 128, 128);"> 9</span>
				<span style="color: rgb(0, 0, 0);">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="color: rgb(0, 0, 255);">use</span>
				<span style="color: rgb(0, 0, 0);"> HTTP</span>
				<span style="color: rgb(0, 0, 0);">::</span>
				<span style="color: rgb(0, 0, 0);">Request</span>
				<span style="color: rgb(0, 0, 0);">::</span>
				<span style="color: rgb(0, 0, 0);">Common;<br /></span>
				<span style="color: rgb(0, 128, 128);">10</span>
				<span style="color: rgb(0, 0, 0);">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="color: rgb(0, 0, 255);">use</span>
				<span style="color: rgb(0, 0, 0);"> LWP</span>
				<span style="color: rgb(0, 0, 0);">::</span>
				<span style="color: rgb(0, 0, 0);">UserAgent;<br /></span>
				<span style="color: rgb(0, 128, 128);">11</span>
				<span style="color: rgb(0, 0, 0);">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="color: rgb(0, 0, 255);">use</span>
				<span style="color: rgb(0, 0, 0);"> URI</span>
				<span style="color: rgb(0, 0, 0);">::</span>
				<span style="color: rgb(0, 0, 0);">URL;<br /></span>
				<span style="color: rgb(0, 128, 128);">12</span>
				<span style="color: rgb(0, 0, 0);">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
						<br />
				</span>
				<span style="color: rgb(0, 128, 128);">13</span>
				<span style="color: rgb(0, 0, 0);">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="color: rgb(0, 128, 0);">#</span>
				<span style="color: rgb(0, 128, 0);"> 从命令行参数中取主网页地址和保存文件夹</span>
				<span style="color: rgb(0, 128, 0);">
						<br />
				</span>
				<span style="color: rgb(0, 128, 128);">14</span>
				<span style="color: rgb(0, 128, 0);">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="color: rgb(0, 0, 255);">my</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="color: rgb(128, 0, 128);">$url</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="color: rgb(0, 0, 0);">=</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="color: rgb(128, 0, 128);">$ARGV</span>
				<span style="color: rgb(0, 0, 0);">[</span>
				<span style="color: rgb(128, 0, 0);">0</span>
				<span style="color: rgb(0, 0, 0);">]; <br /></span>
				<span style="color: rgb(0, 128, 128);">15</span>
				<span style="color: rgb(0, 0, 0);">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="color: rgb(0, 0, 255);">my</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="color: rgb(128, 0, 128);">$location</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="color: rgb(0, 0, 0);">=</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="color: rgb(128, 0, 128);">$ARGV</span>
				<span style="color: rgb(0, 0, 0);">[</span>
				<span style="color: rgb(128, 0, 0);">1</span>
				<span style="color: rgb(0, 0, 0);">];<br /></span>
				<span style="color: rgb(0, 128, 128);">16</span>
				<span style="color: rgb(0, 0, 0);">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
						<br />
				</span>
				<span style="color: rgb(0, 128, 128);">17</span>
				<span style="color: rgb(0, 0, 0);">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="color: rgb(0, 128, 0);">#</span>
				<span style="color: rgb(0, 128, 0);"> 子程序，解析主网页中的链接地址</span>
				<span style="color: rgb(0, 128, 0);">
						<br />
				</span>
				<span style="color: rgb(0, 128, 128);">18</span>
				<span style="color: rgb(0, 128, 0);">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="color: rgb(0, 0, 255);">my</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="color: rgb(128, 0, 128);">@urls</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="color: rgb(0, 0, 0);">=</span>
				<span style="color: rgb(0, 0, 0);"> ();<br /></span>
				<span style="color: rgb(0, 128, 128);">19</span>
				<span style="color: rgb(0, 0, 0);">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="color: rgb(0, 0, 255);">sub</span>
				<span style="color: rgb(0, 0, 0);"> urlCallback<br /></span>
				<span style="color: rgb(0, 128, 128);">20</span>
				<span style="color: rgb(0, 0, 0);">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />{<br /></span>
				<span style="color: rgb(0, 128, 128);">21</span>
				<span style="color: rgb(0, 0, 0);">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span>
				<span style="color: rgb(0, 0, 255);">my</span>
				<span style="color: rgb(0, 0, 0);">(</span>
				<span style="color: rgb(128, 0, 128);">$tag</span>
				<span style="color: rgb(0, 0, 0);">,</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="color: rgb(128, 0, 128);">%attr</span>
				<span style="color: rgb(0, 0, 0);">) </span>
				<span style="color: rgb(0, 0, 0);">=</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="color: rgb(128, 0, 128);">@_</span>
				<span style="color: rgb(0, 0, 0);">;<br /></span>
				<span style="color: rgb(0, 128, 128);">22</span>
				<span style="color: rgb(0, 0, 0);">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span>
				<span style="color: rgb(0, 0, 255);">return</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="color: rgb(0, 0, 255);">if</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="color: rgb(128, 0, 128);">$tag</span>
				<span style="color: rgb(0, 0, 0);"> ne </span>
				<span style="font-weight: bold; color: rgb(0, 0, 0);">'</span>
				<span style="font-weight: bold; color: rgb(0, 0, 0);">a</span>
				<span style="font-weight: bold; color: rgb(0, 0, 0);">'</span>
				<span style="color: rgb(0, 0, 0);">;<br /></span>
				<span style="color: rgb(0, 128, 128);">23</span>
				<span style="color: rgb(0, 0, 0);">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span>
				<span style="color: rgb(0, 0, 255);">push</span>
				<span style="color: rgb(0, 0, 0);">(</span>
				<span style="color: rgb(128, 0, 128);">@urls</span>
				<span style="color: rgb(0, 0, 0);">,</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="color: rgb(0, 0, 255);">values</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="color: rgb(128, 0, 128);">%attr</span>
				<span style="color: rgb(0, 0, 0);">);<br /></span>
				<span style="color: rgb(0, 128, 128);">24</span>
				<span style="color: rgb(0, 0, 0);">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />}<br /></span>
				<span style="color: rgb(0, 128, 128);">25</span>
				<span style="color: rgb(0, 0, 0);">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
						<br />
				</span>
				<span style="color: rgb(0, 128, 128);">26</span>
				<span style="color: rgb(0, 0, 0);">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="color: rgb(0, 128, 0);">#</span>
				<span style="color: rgb(0, 128, 0);"> 用于解析链接的LinkExtractor</span>
				<span style="color: rgb(0, 128, 0);">
						<br />
				</span>
				<span style="color: rgb(0, 128, 128);">27</span>
				<span style="color: rgb(0, 128, 0);">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="color: rgb(0, 0, 255);">my</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="color: rgb(128, 0, 128);">$p</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="color: rgb(0, 0, 0);">=</span>
				<span style="color: rgb(0, 0, 0);"> HTML</span>
				<span style="color: rgb(0, 0, 0);">::</span>
				<span style="color: rgb(0, 0, 0);">LinkExtor</span>
				<span style="color: rgb(0, 0, 0);">-&gt;</span>
				<span style="color: rgb(0, 0, 0);">new(</span>
				<span style="color: rgb(0, 0, 0);">\&amp;</span>
				<span style="color: rgb(0, 0, 0);">urlCallback);<br /></span>
				<span style="color: rgb(0, 128, 128);">28</span>
				<span style="color: rgb(0, 0, 0);">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
						<br />
				</span>
				<span style="color: rgb(0, 128, 128);">29</span>
				<span style="color: rgb(0, 0, 0);">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="color: rgb(0, 128, 0);">#</span>
				<span style="color: rgb(0, 128, 0);"> 载入主网页内容，及解析链接地址</span>
				<span style="color: rgb(0, 128, 0);">
						<br />
				</span>
				<span style="color: rgb(0, 128, 128);">30</span>
				<span style="color: rgb(0, 128, 0);">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="color: rgb(0, 0, 255);">my</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="color: rgb(128, 0, 128);">$ua</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="color: rgb(0, 0, 0);">=</span>
				<span style="color: rgb(0, 0, 0);"> LWP</span>
				<span style="color: rgb(0, 0, 0);">::</span>
				<span style="color: rgb(0, 0, 0);">UserAgent</span>
				<span style="color: rgb(0, 0, 0);">-&gt;</span>
				<span style="color: rgb(0, 0, 0);">new;<br /></span>
				<span style="color: rgb(0, 128, 128);">31</span>
				<span style="color: rgb(0, 0, 0);">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="color: rgb(0, 0, 255);">my</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="color: rgb(128, 0, 128);">$res</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="color: rgb(0, 0, 0);">=</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="color: rgb(128, 0, 128);">$ua</span>
				<span style="color: rgb(0, 0, 0);">-&gt;</span>
				<span style="color: rgb(0, 0, 0);">request(HTTP</span>
				<span style="color: rgb(0, 0, 0);">::</span>
				<span style="color: rgb(0, 0, 0);">Request</span>
				<span style="color: rgb(0, 0, 0);">-&gt;</span>
				<span style="color: rgb(0, 0, 0);">new(GET </span>
				<span style="color: rgb(0, 0, 0);">=&gt;</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="color: rgb(128, 0, 128);">$url</span>
				<span style="color: rgb(0, 0, 0);">)</span>
				<span style="color: rgb(0, 0, 0);">,</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="color: rgb(0, 0, 255);">sub</span>
				<span style="color: rgb(0, 0, 0);">{</span>
				<span style="color: rgb(128, 0, 128);">$p</span>
				<span style="color: rgb(0, 0, 0);">-&gt;</span>
				<span style="color: rgb(0, 0, 0);">parse(</span>
				<span style="color: rgb(128, 0, 128);">$_</span>
				<span style="color: rgb(0, 0, 0);">[</span>
				<span style="color: rgb(128, 0, 0);">0</span>
				<span style="color: rgb(0, 0, 0);">])});<br /></span>
				<span style="color: rgb(0, 128, 128);">32</span>
				<span style="color: rgb(0, 0, 0);">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
						<br />
				</span>
				<span style="color: rgb(0, 128, 128);">33</span>
				<span style="color: rgb(0, 0, 0);">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="color: rgb(0, 128, 0);">#</span>
				<span style="color: rgb(0, 128, 0);"> 将链接的相对路径转换为绝对路径</span>
				<span style="color: rgb(0, 128, 0);">
						<br />
				</span>
				<span style="color: rgb(0, 128, 128);">34</span>
				<span style="color: rgb(0, 128, 0);">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="color: rgb(0, 0, 255);">my</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="color: rgb(128, 0, 128);">$base</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="color: rgb(0, 0, 0);">=</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="color: rgb(128, 0, 128);">$res</span>
				<span style="color: rgb(0, 0, 0);">-&gt;</span>
				<span style="color: rgb(0, 0, 0);">base;<br /></span>
				<span style="color: rgb(0, 128, 128);">35</span>
				<span style="color: rgb(0, 0, 0);">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="color: rgb(128, 0, 128);">@urls</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="color: rgb(0, 0, 0);">=</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="color: rgb(0, 0, 255);">map</span>
				<span style="color: rgb(0, 0, 0);"> {</span>
				<span style="color: rgb(128, 0, 128);">$_</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="color: rgb(0, 0, 0);">=</span>
				<span style="color: rgb(0, 0, 0);"> url(</span>
				<span style="color: rgb(128, 0, 128);">$_</span>
				<span style="color: rgb(0, 0, 0);">,</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="color: rgb(128, 0, 128);">$base</span>
				<span style="color: rgb(0, 0, 0);">) </span>
				<span style="color: rgb(0, 0, 0);">-&gt;</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="color: rgb(0, 0, 255);">abs</span>
				<span style="color: rgb(0, 0, 0);">} </span>
				<span style="color: rgb(128, 0, 128);">@urls</span>
				<span style="color: rgb(0, 0, 0);">;<br /></span>
				<span style="color: rgb(0, 128, 128);">36</span>
				<span style="color: rgb(0, 0, 0);">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
						<br />
				</span>
				<span style="color: rgb(0, 128, 128);">37</span>
				<span style="color: rgb(0, 0, 0);">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="color: rgb(0, 128, 0);">#</span>
				<span style="color: rgb(0, 128, 0);"> 将网页写入文件</span>
				<span style="color: rgb(0, 128, 0);">
						<br />
				</span>
				<span style="color: rgb(0, 128, 128);">38</span>
				<span style="color: rgb(0, 128, 0);">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="color: rgb(128, 0, 128);">$ua</span>
				<span style="color: rgb(0, 0, 0);">-&gt;</span>
				<span style="color: rgb(0, 0, 0);">request(GET(</span>
				<span style="color: rgb(128, 0, 128);">$url</span>
				<span style="color: rgb(0, 0, 0);">)</span>
				<span style="color: rgb(0, 0, 0);">,</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="color: rgb(128, 0, 128);">$location</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="color: rgb(0, 0, 0);">.</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="font-weight: bold; color: rgb(0, 0, 0);">'</span>
				<span style="font-weight: bold; color: rgb(0, 0, 0);">\\index.html</span>
				<span style="font-weight: bold; color: rgb(0, 0, 0);">'</span>
				<span style="color: rgb(0, 0, 0);">);<br /></span>
				<span style="color: rgb(0, 128, 128);">39</span>
				<span style="color: rgb(0, 0, 0);">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="color: rgb(0, 0, 255);">my</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="color: rgb(128, 0, 128);">$index</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="color: rgb(0, 0, 0);">=</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="color: rgb(128, 0, 0);">1</span>
				<span style="color: rgb(0, 0, 0);">;<br /></span>
				<span style="color: rgb(0, 128, 128);">40</span>
				<span style="color: rgb(0, 0, 0);">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
				<span style="color: rgb(0, 0, 255);">foreach</span>
				<span style="color: rgb(0, 0, 0);">(</span>
				<span style="color: rgb(128, 0, 128);">@urls</span>
				<span style="color: rgb(0, 0, 0);">)<br /></span>
				<span style="color: rgb(0, 128, 128);">41</span>
				<span style="color: rgb(0, 0, 0);">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />{<br /></span>
				<span style="color: rgb(0, 128, 128);">42</span>
				<span style="color: rgb(0, 0, 0);">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span>
				<span style="color: rgb(128, 0, 128);">$ua</span>
				<span style="color: rgb(0, 0, 0);">-&gt;</span>
				<span style="color: rgb(0, 0, 0);">request(GET(</span>
				<span style="color: rgb(128, 0, 128);">$_</span>
				<span style="color: rgb(0, 0, 0);">)</span>
				<span style="color: rgb(0, 0, 0);">,</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="color: rgb(128, 0, 128);">$location</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="color: rgb(0, 0, 0);">.</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="font-weight: bold; color: rgb(0, 0, 0);">'</span>
				<span style="font-weight: bold; color: rgb(0, 0, 0);">\\</span>
				<span style="font-weight: bold; color: rgb(0, 0, 0);">'</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="color: rgb(0, 0, 0);">.</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="color: rgb(128, 0, 128);">$index</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="color: rgb(0, 0, 0);">.</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="font-weight: bold; color: rgb(0, 0, 0);">'</span>
				<span style="font-weight: bold; color: rgb(0, 0, 0);">.html</span>
				<span style="font-weight: bold; color: rgb(0, 0, 0);">'</span>
				<span style="color: rgb(0, 0, 0);">);<br /></span>
				<span style="color: rgb(0, 128, 128);">43</span>
				<span style="color: rgb(0, 0, 0);">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />    </span>
				<span style="color: rgb(128, 0, 128);">$index</span>
				<span style="color: rgb(0, 0, 0);">+=</span>
				<span style="color: rgb(128, 0, 0);">1</span>
				<span style="color: rgb(0, 0, 0);">;<br /></span>
				<span style="color: rgb(0, 128, 128);">44</span>
				<span style="color: rgb(0, 0, 0);">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />}</span>
		</div>
		<p>
				<br />主网页保存为index.html，子网页按1、2、3排序生成1.html、2.html等<br /><br />因为有<a href="http://desktop.google.com" target="_blank">Google Desktop</a>，即使文件名是1.html...，搜索起来也是很方便的。也可以扩充下，将&lt;a&gt;&lt;/a&gt;中的新闻主题抽出来作为文件名。但这个程序对我来说已经足够了，所以就不继续做了。<br /><br />总的来说用Perl还是很简单的，库也很多，写起来挺方便！但是要记得常翻翻<a href="http://perldoc.perl.org/index-language.html" target="_blank">Perl手册</a>，呵呵<br /><br />Technorati Tag :  <a href="http://technorati.com/tag/perl" target="_blank">Perl </a><a href="http://technorati.com/tag/LWP" target="_blank">LWP</a>  <a href="http://technorati.com/tag/download" target="_blank">Download</a>  <a href="http://technorati.com/tag/web" target="_blank">web</a>  <a href="http://technorati.com/tag/script" target="_blank">script</a></p>
<img src ="http://www.blogjava.net/Andyluo/aggbug/91628.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Andyluo/" target="_blank">罗明</a> 2007-01-03 21:00 <a href="http://www.blogjava.net/Andyluo/archive/2007/01/03/perlDown.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>为什么用PreparedStatement而不是直接用"+"连接SQL语句</title><link>http://www.blogjava.net/Andyluo/archive/2006/11/01/78549.html</link><dc:creator>罗明</dc:creator><author>罗明</author><pubDate>Wed, 01 Nov 2006 12:18:00 GMT</pubDate><guid>http://www.blogjava.net/Andyluo/archive/2006/11/01/78549.html</guid><wfw:comment>http://www.blogjava.net/Andyluo/comments/78549.html</wfw:comment><comments>http://www.blogjava.net/Andyluo/archive/2006/11/01/78549.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/Andyluo/comments/commentRss/78549.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Andyluo/services/trackbacks/78549.html</trackback:ping><description><![CDATA[
		<p>最开始 我在程序里使用SQL访问数据库时，都是直接用“+”将字段值嵌到SQL中。  </p>
		<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">
				<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #000000">String sql </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">select s.name from student s where s.id='</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #000000">+</span>
				<span style="COLOR: #000000"> sId </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">"；</span>
		</div>
		<br />
		<p>
				<br />后来我开始使用<strong>PreparedStatement</strong>，在SQL里使用“？”标记参数，然后用setXXX方法给参数赋值。当时只知道这样用是因为有<strong>setDate，setTimeStamp</strong>这些用“+”连接不能直接嵌入的值。<br /><br />感觉PreparedStatement在<strong>性能</strong>方面应该也能快点，可能DBMS会重用，但不明底层原理。<br /><br />这次《数据库实现》课程终于让我弄懂了：<strong>每个SQL语句都要通过 语法分析 -&gt; 生成逻辑查询计划 -&gt; 逻辑优化 -&gt; 物理优化</strong> 等步骤生成具体的执行计划，用PreparedStatement就可以生成一个执行计划，以后只是参数改变（相当于执行计划的<strong>执行环境改变</strong>），前面的四个步骤也会<strong>省略</strong>，从而提高了效率。<br /><br />如果一个SQL语句要被反复多次执行，或多用户同时操作，则应选用PreparedStatement！</p>
<img src ="http://www.blogjava.net/Andyluo/aggbug/78549.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Andyluo/" target="_blank">罗明</a> 2006-11-01 20:18 <a href="http://www.blogjava.net/Andyluo/archive/2006/11/01/78549.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>余世维先生讲座-《如何成为世界500强需要的人才》-后感</title><link>http://www.blogjava.net/Andyluo/archive/2006/05/19/47128.html</link><dc:creator>罗明</dc:creator><author>罗明</author><pubDate>Fri, 19 May 2006 15:24:00 GMT</pubDate><guid>http://www.blogjava.net/Andyluo/archive/2006/05/19/47128.html</guid><wfw:comment>http://www.blogjava.net/Andyluo/comments/47128.html</wfw:comment><comments>http://www.blogjava.net/Andyluo/archive/2006/05/19/47128.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/Andyluo/comments/commentRss/47128.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Andyluo/services/trackbacks/47128.html</trackback:ping><description><![CDATA[今天听了<a class="" title="简介" href="http://www.google.com/search?sourceid=navclient&amp;ie=UTF-8&amp;rls=GGLJ,GGLJ:2006-16,GGLJ:en&amp;q=%e4%bd%99%e4%b8%96%e7%bb%b4" target="_blank">余世维</a>先生的讲座，没白排一个多小时的队－＿－！，讲得比想象的要激情，话题触及到政治、社会、国际关系、历史。。。感觉印象比较深，我要努力的地方，主要有以下几点（总结^_^）：<br /><br />1、多涉猎各个学科知识，知识多元化。工科的多阅读工商管理、经济、贸易、人文等方面的书籍和杂志，不说一本一本看，也要一月读几篇。<br /><br />2、遇事多沟通。这也是管理的五大要素之一。前几天因为学习忙没有搭理项目上的“老板”，没有联系，这也是缺乏沟通！<br /><br />3、逆境不可怕，心态最重要，逆商是人成功的重要因素。<br /><br />4、提高素质和修养，这是我们做每件小事时都要注意的。<br /><br />5、执行力。任务发下来了，能不能保质保量按时完成，这是执行力；尽职做好工作中的每一件事，也是一种执行力；<br /><p>执行力是工作中最重要的！ <br /><br />人有7次改变命运的机遇，第一次和最后一次没有精力抓住（too naive 或 too old），中间两次机遇错失，其余三次机遇就看你能否抓住了。</p><img src ="http://www.blogjava.net/Andyluo/aggbug/47128.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Andyluo/" target="_blank">罗明</a> 2006-05-19 23:24 <a href="http://www.blogjava.net/Andyluo/archive/2006/05/19/47128.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>我用过的Google功能</title><link>http://www.blogjava.net/Andyluo/archive/2006/04/13/40962.html</link><dc:creator>罗明</dc:creator><author>罗明</author><pubDate>Thu, 13 Apr 2006 12:01:00 GMT</pubDate><guid>http://www.blogjava.net/Andyluo/archive/2006/04/13/40962.html</guid><wfw:comment>http://www.blogjava.net/Andyluo/comments/40962.html</wfw:comment><comments>http://www.blogjava.net/Andyluo/archive/2006/04/13/40962.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/Andyluo/comments/commentRss/40962.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Andyluo/services/trackbacks/40962.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Google 拼音：输入法，即时收录网上的流行词汇，多机同步自定义词汇和常用词汇；Google Browser Sync：（Firefox 插件）提供Firefox网页访问历史的多机共享；Google Web History：记录你访问过的网页历史。。。。。&nbsp;&nbsp;<a href='http://www.blogjava.net/Andyluo/archive/2006/04/13/40962.html'>阅读全文</a><img src ="http://www.blogjava.net/Andyluo/aggbug/40962.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Andyluo/" target="_blank">罗明</a> 2006-04-13 20:01 <a href="http://www.blogjava.net/Andyluo/archive/2006/04/13/40962.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Google Pages</title><link>http://www.blogjava.net/Andyluo/archive/2006/04/13/40934.html</link><dc:creator>罗明</dc:creator><author>罗明</author><pubDate>Thu, 13 Apr 2006 08:55:00 GMT</pubDate><guid>http://www.blogjava.net/Andyluo/archive/2006/04/13/40934.html</guid><wfw:comment>http://www.blogjava.net/Andyluo/comments/40934.html</wfw:comment><comments>http://www.blogjava.net/Andyluo/archive/2006/04/13/40934.html#Feedback</comments><slash:comments>42</slash:comments><wfw:commentRss>http://www.blogjava.net/Andyluo/comments/commentRss/40934.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Andyluo/services/trackbacks/40934.html</trackback:ping><description><![CDATA[今天第一次试用了Google Pages，有100MB空间，延续了Google简单明了的风格。制作页面的过程也是行云流水，一气呵成，绝对的所见即所得，n多种风格可以挑选。整个网页，包括布局、尾注、页眉、网页上所有文字，都是你说了算，没有丝毫累赘。新建页标题名即网页文件名，又是简单明了，估计也更便于信息的归类和检索。这就是我使用的感受了，总体感觉挺好！<br /><br />目前只知道在左栏可以列出所有文章，但不知道具体分页怎么做，莫非自己在页尾列出各个页号及上下页链接？<br /><br />要是再加一个Google搜索栏搜索整站内容就更好了，不过自己就应该可以实现哦，just try!<img src ="http://www.blogjava.net/Andyluo/aggbug/40934.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Andyluo/" target="_blank">罗明</a> 2006-04-13 16:55 <a href="http://www.blogjava.net/Andyluo/archive/2006/04/13/40934.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何将小数转换成百分数</title><link>http://www.blogjava.net/Andyluo/archive/2006/03/27/convertToPercent.html</link><dc:creator>罗明</dc:creator><author>罗明</author><pubDate>Mon, 27 Mar 2006 11:48:00 GMT</pubDate><guid>http://www.blogjava.net/Andyluo/archive/2006/03/27/convertToPercent.html</guid><wfw:comment>http://www.blogjava.net/Andyluo/comments/37672.html</wfw:comment><comments>http://www.blogjava.net/Andyluo/archive/2006/03/27/convertToPercent.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Andyluo/comments/commentRss/37672.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Andyluo/services/trackbacks/37672.html</trackback:ping><description><![CDATA[有朋友在群里问了这个问题，印象中Java没有这方面的函数（百分数转换为小数倒是有一个），而且直接乘以100会得出类似2.5999999999的结果，在网上也没有搜到类似的解决方案，所以把我们的讨论结果发上来，肯定不是最优解，也希望来访者留下你们的解决办法，只要能优化其中的某一段就可以！<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"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000"> String convert(String orignal)<br /><img id="Codehighlighter1_39_617_Open_Image" onclick="this.style.display='none'; Codehighlighter1_39_617_Open_Text.style.display='none'; Codehighlighter1_39_617_Closed_Image.style.display='inline'; Codehighlighter1_39_617_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_39_617_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_39_617_Closed_Text.style.display='none'; Codehighlighter1_39_617_Open_Image.style.display='inline'; Codehighlighter1_39_617_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_39_617_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_39_617_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">去掉小数后面的零值，如：0.02500</span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">    String noDotInteger </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> Integer.parseInt    (str.replace(</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">''</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">;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">2500</span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> lengthOfZero </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> noDotInteger.length() </span><span style="COLOR: #000000">-</span><span style="COLOR: #000000"> noDotInteger.indexOf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">2</span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">    str </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> str.substring(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">, str.length() </span><span style="COLOR: #000000">-</span><span style="COLOR: #000000"> lengthOfZero);</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">0.025 <br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">转换成百分数字符串</span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> index </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> orignal.indexOf(</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">.</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(index </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000"> orignal.length() </span><span style="COLOR: #000000">-</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">)<br /><img id="Codehighlighter1_385_515_Open_Image" onclick="this.style.display='none'; Codehighlighter1_385_515_Open_Text.style.display='none'; Codehighlighter1_385_515_Closed_Image.style.display='inline'; Codehighlighter1_385_515_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_385_515_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_385_515_Closed_Text.style.display='none'; Codehighlighter1_385_515_Open_Image.style.display='inline'; Codehighlighter1_385_515_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span id="Codehighlighter1_385_515_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_385_515_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> orignal.substring(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,index) </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> orignal.substring(index </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,index </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">) </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /> </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">+</span><span style="COLOR: #000000"> orignal.substring(index </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">3</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">%</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"><br /><img id="Codehighlighter1_530_615_Open_Image" onclick="this.style.display='none'; Codehighlighter1_530_615_Open_Text.style.display='none'; Codehighlighter1_530_615_Closed_Image.style.display='inline'; Codehighlighter1_530_615_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_530_615_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_530_615_Closed_Text.style.display='none'; Codehighlighter1_530_615_Open_Image.style.display='inline'; Codehighlighter1_530_615_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span id="Codehighlighter1_530_615_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_530_615_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />       </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> orignal.substring(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,index) </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> orignal.substring(index </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">1</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">%</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div><br />续：J2ME综合技术讨论群 的刘军提出了他的解决方案：<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"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> java.math.BigDecimal;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> Hello<br /><img id="Codehighlighter1_48_221_Open_Image" onclick="this.style.display='none'; Codehighlighter1_48_221_Open_Text.style.display='none'; Codehighlighter1_48_221_Closed_Image.style.display='inline'; Codehighlighter1_48_221_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_48_221_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_48_221_Closed_Text.style.display='none'; Codehighlighter1_48_221_Open_Image.style.display='inline'; Codehighlighter1_48_221_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_48_221_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_48_221_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> main(String args[])<br /><img id="Codehighlighter1_91_219_Open_Image" onclick="this.style.display='none'; Codehighlighter1_91_219_Open_Text.style.display='none'; Codehighlighter1_91_219_Closed_Image.style.display='inline'; Codehighlighter1_91_219_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_91_219_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_91_219_Closed_Text.style.display='none'; Codehighlighter1_91_219_Open_Image.style.display='inline'; Codehighlighter1_91_219_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span id="Codehighlighter1_91_219_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/images/dot.gif" /></span><span id="Codehighlighter1_91_219_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        String s </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">0.025</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        BigDecimal bd </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> BigDecimal(s);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        System.out.println(bd.multiply(</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> BigDecimal(</span><span style="COLOR: #000000">100</span><span style="COLOR: #000000">))); </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">输出2.500</span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" /></span><span style="COLOR: #000000">    }</span></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"> </span></div><br />山城浪子则说用java.text.DecimalFormat最好最方便！<img src ="http://www.blogjava.net/Andyluo/aggbug/37672.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Andyluo/" target="_blank">罗明</a> 2006-03-27 19:48 <a href="http://www.blogjava.net/Andyluo/archive/2006/03/27/convertToPercent.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>系统崩溃修复未果，Oracle冷备份成功</title><link>http://www.blogjava.net/Andyluo/archive/2006/03/16/35540.html</link><dc:creator>罗明</dc:creator><author>罗明</author><pubDate>Thu, 16 Mar 2006 01:35:00 GMT</pubDate><guid>http://www.blogjava.net/Andyluo/archive/2006/03/16/35540.html</guid><wfw:comment>http://www.blogjava.net/Andyluo/comments/35540.html</wfw:comment><comments>http://www.blogjava.net/Andyluo/archive/2006/03/16/35540.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Andyluo/comments/commentRss/35540.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Andyluo/services/trackbacks/35540.html</trackback:ping><description><![CDATA[      前天由于突然断电，造成系统崩溃，启动系统在Windows Server 2003滚动条出现时发生蓝屏，提示<strong>system32/config目录下的software文件错误，无法启动</strong>。<br /><br />      用安装盘修复未果，以为<strong>覆盖安装</strong>可以保留原有程序，所以重装了系统，结果在安装时也没发现有覆盖安装保留原有系统的选项。装完后程序都不能运行了，为了保留原有Oracle数据（Y的那几天没做备份），试着把整个Oracle文件夹（包括ora90, admin, oradata）备份下来，用<strong>同样路径</strong>重装Oracle和新建数据库，数据库设置和以前一样。然后在“服务”里停掉所有以Oracle开头的服务，我的包括OracleOraHome90Agent，OracleOraHome90HttpServer，OracleOraHome90TNSListener和OracleServiceSMS（SMS是我的数据库名）。再把刚才的备份覆盖到以前的目录（jdk目录里有些dll可能被使用，这个目录可以不覆盖），启动刚才关闭的服务，打开<strong>Enterprise Manager Console</strong>和<strong>Net Manager</strong>，发现现在的数据库和服务命名跟原来一模一样（重装操作系统时最好计算机名也跟以前一样，不然还要改一下NetManager里<strong>服务命名</strong>和<strong>监听程序</strong>的<strong>主机名</strong>）。<br /><br />      不知道这种备份是不是叫<strong>冷备份</strong>，反正是挺“冷”的，悄无声息就备份过来了，呵呵，这种机制感觉挺好！<img src ="http://www.blogjava.net/Andyluo/aggbug/35540.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Andyluo/" target="_blank">罗明</a> 2006-03-16 09:35 <a href="http://www.blogjava.net/Andyluo/archive/2006/03/16/35540.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Web2.0的时代到来了吗？</title><link>http://www.blogjava.net/Andyluo/archive/2006/03/10/34629.html</link><dc:creator>罗明</dc:creator><author>罗明</author><pubDate>Fri, 10 Mar 2006 03:42:00 GMT</pubDate><guid>http://www.blogjava.net/Andyluo/archive/2006/03/10/34629.html</guid><wfw:comment>http://www.blogjava.net/Andyluo/comments/34629.html</wfw:comment><comments>http://www.blogjava.net/Andyluo/archive/2006/03/10/34629.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/Andyluo/comments/commentRss/34629.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Andyluo/services/trackbacks/34629.html</trackback:ping><description><![CDATA[<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;有越来越多的迹象表明Web2.0之类的东西渐渐深入网络的各个角落，无论是Google Maps，Gmail，Flickr还是国内的163邮箱、365kit、豆瓣网，都把Ajax之类代表Web2.0的技术发挥得淋漓尽致，撇开他们用的技术不管，单从他们提高的用户交互“流畅感”，就可以说是对Web技术的一次改革。<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;以前的Web应用从功能方面考虑的因素比较多，对提升用户体验度所做的工作很少，现在的Web2.0应用则从用户的角度入手，把提升用户体验度当成第一目标。以前不喜欢搞Web开发，更不喜欢用JavaScript，感觉那些东东只能做些美化界面的活，做些动画什么的，因为当初认为它只能在客户端发挥作用，而现在JavaScript和异步传输结合，就把服务器的地盘也夺过来了。<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;如今，Web2.0应用的复杂度已经可以与大型应用媲美了，很多提高用户体验度的东东都要在后台做大量有技术难度的工作，如365kit的通讯录同步功能，就要在与Outlook、MSN、手机交互中下很大工夫。<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;现在还没有时间，要忙着做项目和毕业设计，等过一阵子，一定要研究一下Ajax和JavaScript，并做出个像样的应用来。也希望以后能做出个好的应用，有市场的，慢慢把它做大，推广，现在不流行网络创业吗，呵呵，而且门槛也比较低，要的硬件和资金不多，主要是应用要有市场、有创意！<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Web2.0火了，我们又多了一条路！<BR><BR>（写得不好，欢迎大家拍砖）<BR><BR><BR>续：<BR>RIA应该也是一种实现Web2.0的技术？ <BR><BR>Web2.0应该是一种思想，是通过提高用户体验度来赢得市场，实现它的技术有很多，只要能达到提高用户体验度的目的，我们就可以说它“是”Web2.0，不是吗？ <BR><BR>RIA技术我知道的好像有三种：1、Flex 2、Eclipse RCP 3、Ajax&nbsp; 4、Java Web Start<BR></P><img src ="http://www.blogjava.net/Andyluo/aggbug/34629.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Andyluo/" target="_blank">罗明</a> 2006-03-10 11:42 <a href="http://www.blogjava.net/Andyluo/archive/2006/03/10/34629.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Something is usable if it behaves exactly as expected. </title><link>http://www.blogjava.net/Andyluo/archive/2006/03/08/34201.html</link><dc:creator>罗明</dc:creator><author>罗明</author><pubDate>Wed, 08 Mar 2006 03:05:00 GMT</pubDate><guid>http://www.blogjava.net/Andyluo/archive/2006/03/08/34201.html</guid><wfw:comment>http://www.blogjava.net/Andyluo/comments/34201.html</wfw:comment><comments>http://www.blogjava.net/Andyluo/archive/2006/03/08/34201.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Andyluo/comments/commentRss/34201.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Andyluo/services/trackbacks/34201.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在Joel的<A href="http://www.joelonsoftware.com/items/2006/03/07.html">一篇文章</A>里提到了这样一句话，<EM>Something is usable if it behaves exactly as expected. &nbsp;</EM>Joel认为软件的可用性也是如此：<STRONG>如果软件的每一次响应都符合用户要求，那它就是可用的</STRONG>。这确实是“正确”的，关键在于我们怎么获得目的用户的确切需求，单个领域用户还好一点，做个市场调查估计能得出个八九不离十；如果是通用软件，那还得考虑周详一点。<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这句话倒是值得收藏，以后做软件的时候是应该多考虑一下，使界面响应和工作流程能更符合用户的习惯和需求！<BR><BR>续：<BR>又有了一种<A HREF="/shaofan/archive/2006/03/10/34588.html">新的译法</A>，感觉这样容易理解些：UI能以用户预期的方式来响应他们的操作，那这个UI就是可用的。<img src ="http://www.blogjava.net/Andyluo/aggbug/34201.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Andyluo/" target="_blank">罗明</a> 2006-03-08 11:05 <a href="http://www.blogjava.net/Andyluo/archive/2006/03/08/34201.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>做报表时某种中文问题的解决方法</title><link>http://www.blogjava.net/Andyluo/archive/2006/02/19/31540.html</link><dc:creator>罗明</dc:creator><author>罗明</author><pubDate>Sun, 19 Feb 2006 12:43:00 GMT</pubDate><guid>http://www.blogjava.net/Andyluo/archive/2006/02/19/31540.html</guid><wfw:comment>http://www.blogjava.net/Andyluo/comments/31540.html</wfw:comment><comments>http://www.blogjava.net/Andyluo/archive/2006/02/19/31540.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Andyluo/comments/commentRss/31540.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Andyluo/services/trackbacks/31540.html</trackback:ping><description><![CDATA[<P>刚解决的问题：<BR><BR>用Word的网页形式做报表时遇到中文乱码，而且已经使用ISO8859_1对中文参数进行了转换，试试将网页里的charset=us-ascii改为charset=gb2312<BR><BR>怎么我这里默认的charset是us-ascii呢，我这是中文版阿？！</P><img src ="http://www.blogjava.net/Andyluo/aggbug/31540.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Andyluo/" target="_blank">罗明</a> 2006-02-19 20:43 <a href="http://www.blogjava.net/Andyluo/archive/2006/02/19/31540.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[Tips]oracle 时间转换的问题</title><link>http://www.blogjava.net/Andyluo/archive/2006/02/16/31106.html</link><dc:creator>罗明</dc:creator><author>罗明</author><pubDate>Thu, 16 Feb 2006 14:33:00 GMT</pubDate><guid>http://www.blogjava.net/Andyluo/archive/2006/02/16/31106.html</guid><wfw:comment>http://www.blogjava.net/Andyluo/comments/31106.html</wfw:comment><comments>http://www.blogjava.net/Andyluo/archive/2006/02/16/31106.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Andyluo/comments/commentRss/31106.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Andyluo/services/trackbacks/31106.html</trackback:ping><description><![CDATA[问：<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">这样一个语句，<BR>insert&nbsp;INTO&nbsp;test&nbsp;(&nbsp;time)&nbsp;VALUES('2005-07-19&nbsp;11:53:53')<BR>在有的oracle数据库上运行成功，有的机器上运行不成功。请问oracle中有这样设置么？<BR>（&nbsp;当然，把它改成<BR>insert&nbsp;INTO&nbsp;test&nbsp;(&nbsp;time)&nbsp;VALUES(to_date('2005-07-19&nbsp;11:53:53','YYYY-MM-DD&nbsp;HH24:MI:SS'))&nbsp;&nbsp;肯定可以运行成功。）<BR><BR>还有一个小问题。oracle有没有提供这种的转换函数<BR>把1104840333&nbsp;转化为2005-06-28&nbsp;21:09:17&nbsp;这种类型。&nbsp;（1104840333&nbsp;是从1970－&nbsp;2005-06-28&nbsp;21:09:17的秒数</SPAN></DIV><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">alter&nbsp;session&nbsp;set&nbsp;nls_date_format&nbsp;=&nbsp;'YYYY-MM-DD&nbsp;HH24:MI:SS''<BR><BR>你的秒数是怎么算的，不对吧？<BR>select&nbsp;(to_date('2005-06-28&nbsp;21:09:17','yyyy-mm-dd&nbsp;hh24:mi:ss')-to_date('1970','yyyy'))*24*60*60&nbsp;from&nbsp;dual<BR>出来的结果是1104354557<BR>这个问题可以这样解决：<BR>select&nbsp;to_date('19700101000000','yyyymmddhh24miss')+(1104840333/(24*60*60))&nbsp;from&nbsp;dual</SPAN></DIV><img src ="http://www.blogjava.net/Andyluo/aggbug/31106.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Andyluo/" target="_blank">罗明</a> 2006-02-16 22:33 <a href="http://www.blogjava.net/Andyluo/archive/2006/02/16/31106.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用winrar或winzip制作可运行jar文件</title><link>http://www.blogjava.net/Andyluo/archive/2006/02/16/31057.html</link><dc:creator>罗明</dc:creator><author>罗明</author><pubDate>Thu, 16 Feb 2006 06:49:00 GMT</pubDate><guid>http://www.blogjava.net/Andyluo/archive/2006/02/16/31057.html</guid><wfw:comment>http://www.blogjava.net/Andyluo/comments/31057.html</wfw:comment><comments>http://www.blogjava.net/Andyluo/archive/2006/02/16/31057.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Andyluo/comments/commentRss/31057.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Andyluo/services/trackbacks/31057.html</trackback:ping><description><![CDATA[目的是在没有安装JDK的情况下制作可执行jar。<BR><BR>步骤：<BR>&nbsp;<BR>1、在应用程序文件根目录下新建一个META-INF目录，在该目录下新建MANIFEST.MF文件， <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: #008080">1</SPAN>&nbsp;<SPAN style="COLOR: #000000">Main-Class:&nbsp;包名.主类名&nbsp;<BR></SPAN><SPAN style="COLOR: #008080">2</SPAN>&nbsp;<SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">3</SPAN>&nbsp;<SPAN style="COLOR: #000000"></SPAN></DIV><BR>2、将应用程序根目录下所有文件用winrar或winzip打包，格式为zip； <BR><BR>3、将zip文件扩展名改为jar ；<BR><BR>4、双击jar文件即可运行。 <BR><BR>希望能对大家有点帮助。<img src ="http://www.blogjava.net/Andyluo/aggbug/31057.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Andyluo/" target="_blank">罗明</a> 2006-02-16 14:49 <a href="http://www.blogjava.net/Andyluo/archive/2006/02/16/31057.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[备份from blueline]利用Ant来做Nightly Test（zz）</title><link>http://www.blogjava.net/Andyluo/archive/2006/02/16/31017.html</link><dc:creator>罗明</dc:creator><author>罗明</author><pubDate>Thu, 16 Feb 2006 06:13:00 GMT</pubDate><guid>http://www.blogjava.net/Andyluo/archive/2006/02/16/31017.html</guid><wfw:comment>http://www.blogjava.net/Andyluo/comments/31017.html</wfw:comment><comments>http://www.blogjava.net/Andyluo/archive/2006/02/16/31017.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Andyluo/comments/commentRss/31017.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Andyluo/services/trackbacks/31017.html</trackback:ping><description><![CDATA[使用Ant中的两个Tasks来完成自动运行Nightly Test <br />
<br />
&lt;junit printsummary="yes" haltonfailure="yes"&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;test name="org.redsoft.forum.AllTests&#8221; haltonfailure="no" outfile="result" &gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;formatter type="xml" /&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/test&gt; <br />
&lt;/junit&gt;<br />
<br />
产生一个XML是结果报告<br />
再利用JunitReport来产生一个可供浏览的结果文件。<br />
<br />
&lt;junitreport todir="./reports"&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;fileset dir="./reports"&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;include name="TEST-*.xml"/&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/fileset&gt;<br />
&nbsp;&lt;report format="frames" todir="./report/html"/&gt;<br />
&lt;/junitreport&gt;<br />
<br />
<img src ="http://www.blogjava.net/Andyluo/aggbug/31017.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Andyluo/" target="_blank">罗明</a> 2006-02-16 14:13 <a href="http://www.blogjava.net/Andyluo/archive/2006/02/16/31017.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ubuntu Documentation软件列表是一个大书库</title><link>http://www.blogjava.net/Andyluo/archive/2005/10/26/17199.html</link><dc:creator>罗明</dc:creator><author>罗明</author><pubDate>Wed, 26 Oct 2005 02:25:00 GMT</pubDate><guid>http://www.blogjava.net/Andyluo/archive/2005/10/26/17199.html</guid><wfw:comment>http://www.blogjava.net/Andyluo/comments/17199.html</wfw:comment><comments>http://www.blogjava.net/Andyluo/archive/2005/10/26/17199.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Andyluo/comments/commentRss/17199.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Andyluo/services/trackbacks/17199.html</trackback:ping><description><![CDATA[
		<div>
				<p>使用Ubuntu Linux操作系统才有这个软件列表，在软件包管理器里选择安装某个文档，会自动下载到本地，然后就可以阅读了，一般都是开源软件（如Apache2、Emacs、VI、CVS、Subversion等）的资料。</p>
				<p>标准且全面，大多数文档有对应的中文版本，可以对照着看。<br /></p>
				<p>really crazy</p>
				<p>现在总共有952本书/文档</p>
				<p>i don't have to find ebooks on web anymore, it's enough, also a good place to improve my English skills.</p>
		</div>
		<img height="1" alt="" src="http://c.spaces.msn.com/CollectionWebService/c.gif?space=Andyluo197&amp;page=RSS%3a+Ubuntu+Documentation%e8%bd%af%e4%bb%b6%e5%88%97%e8%a1%a8%e6%98%af%e4%b8%80%e4%b8%aa%e5%a4%a7%e4%b9%a6%e5%ba%93&amp;referrer=" width="1" border="0" />
		<img style="POSITION: absolute" height="0px" alt="" src="http://c.msn.com/c.gif?NC=31263&amp;NA=1149&amp;PI=73329&amp;DI=3919&amp;PS=85545" width="0px" />
<img src ="http://www.blogjava.net/Andyluo/aggbug/17199.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Andyluo/" target="_blank">罗明</a> 2005-10-26 10:25 <a href="http://www.blogjava.net/Andyluo/archive/2005/10/26/17199.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用winrar或winzip制作可执行jar文件</title><link>http://www.blogjava.net/Andyluo/archive/2004/08/14/31049.html</link><dc:creator>罗明</dc:creator><author>罗明</author><pubDate>Fri, 13 Aug 2004 20:31:00 GMT</pubDate><guid>http://www.blogjava.net/Andyluo/archive/2004/08/14/31049.html</guid><wfw:comment>http://www.blogjava.net/Andyluo/comments/31049.html</wfw:comment><comments>http://www.blogjava.net/Andyluo/archive/2004/08/14/31049.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Andyluo/comments/commentRss/31049.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Andyluo/services/trackbacks/31049.html</trackback:ping><description><![CDATA[目的是在没有安装JDK的情况下制作可执行jar。<br /><br />步骤：<br />1、在应用程序文件根目录(放置class文件的顶层目录)下新建一个META-INF目录，在该目录下新建MANIFEST.MF文件， 文件内容为：<br /><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 128, 128);">1</span> <span style="color: rgb(0, 0, 0);">Main</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">Class: 包名.主类名<br /></span><span style="color: rgb(0, 128, 128);">2</span> <span style="color: rgb(0, 0, 0);"><br /></span><span style="color: rgb(0, 128, 128);"></span><span style="color: rgb(0, 0, 0);"></span></div><br />2、将应用程序根目录下所有文件用winrar或winzip打包，格式为zip； <br /><br />3、将zip文件扩展名改为jar ；<br /><br />4、双击jar文件即可运行。 <br /><br />希望能对大家有点帮助。<img src ="http://www.blogjava.net/Andyluo/aggbug/31049.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Andyluo/" target="_blank">罗明</a> 2004-08-14 04:31 <a href="http://www.blogjava.net/Andyluo/archive/2004/08/14/31049.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>