<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_选择大于努力,选择前请三思,选择后请努力.</title><subtitle type="text">勤于思，敏于行，善于言，思行合一。以一颗不懈追求的心，不断改变完善自我。</subtitle><id>http://feed.cnblogs.com/blog/u/23995/rss</id><updated>2012-02-08T09:05:47Z</updated><author><name>冷风旋</name><uri>http://www.cnblogs.com/zzyn/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zzyn/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/23995/rss"/><entry><id>http://www.cnblogs.com/zzyn/archive/2011/10/01/2197036.html</id><title type="text">[算法]遍历文件系统</title><summary type="text">1 public void BFS(DirectoryInfo dir, ref long nfile, ref long ndir) 2 { 3 try 4 { 5 IEnumerable&amp;lt;string&amp;gt; ieDir = Directory.EnumerateDirectories(dir.FullName); 6 7 IEnumerator&amp;lt;string&amp;gt; iDir = ieDir.GetEnumerator(); 8 9 ...</summary><published>2011-10-01T03:43:00Z</published><updated>2011-10-01T03:43:00Z</updated><author><name>冷风旋</name><uri>http://www.cnblogs.com/zzyn/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zzyn/archive/2011/10/01/2197036.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zzyn/archive/2011/10/01/2197036.html"/><content type="html">&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;pre&gt;&lt;span style="color: #008080;"&gt; 1&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; BFS(DirectoryInfo dir, &lt;span style="color: #0000ff;"&gt;ref&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;long&lt;/span&gt; nfile, &lt;span style="color: #0000ff;"&gt;ref&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;long&lt;/span&gt; ndir) &lt;br /&gt;&lt;span style="color: #008080;"&gt; 2&lt;/span&gt;         {&lt;br /&gt;&lt;span style="color: #008080;"&gt; 3&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;try&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 4&lt;/span&gt;             {&lt;br /&gt;&lt;span style="color: #008080;"&gt; 5&lt;/span&gt;                 IEnumerable&amp;lt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&amp;gt; ieDir = Directory.EnumerateDirectories(dir.FullName);&lt;br /&gt;&lt;span style="color: #008080;"&gt; 6&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt; 7&lt;/span&gt;                 IEnumerator&amp;lt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&amp;gt; iDir = ieDir.GetEnumerator();&lt;br /&gt;&lt;span style="color: #008080;"&gt; 8&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt; 9&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;do&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt;10&lt;/span&gt;                 {&lt;br /&gt;&lt;span style="color: #008080;"&gt;11&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (iDir.Current != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: #008080;"&gt;12&lt;/span&gt;                     {&lt;br /&gt;&lt;span style="color: #008080;"&gt;13&lt;/span&gt;                         Console.WriteLine(iDir.Current.ToString());&lt;br /&gt;&lt;span style="color: #008080;"&gt;14&lt;/span&gt;                         ndir++;&lt;br /&gt;&lt;span style="color: #008080;"&gt;15&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;16&lt;/span&gt;                         &lt;span style="color: #0000ff;"&gt;try&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt;17&lt;/span&gt;                         {&lt;br /&gt;&lt;span style="color: #008080;"&gt;18&lt;/span&gt;                             IEnumerable&amp;lt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&amp;gt; ieFile = Directory.EnumerateFiles(iDir.Current.ToString());&lt;br /&gt;&lt;span style="color: #008080;"&gt;19&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;20&lt;/span&gt;                             IEnumerator&amp;lt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&amp;gt; iFile = ieFile.GetEnumerator();&lt;br /&gt;&lt;span style="color: #008080;"&gt;21&lt;/span&gt;                             &lt;span style="color: #0000ff;"&gt;do&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt;22&lt;/span&gt;                             {&lt;br /&gt;&lt;span style="color: #008080;"&gt;23&lt;/span&gt;                                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (iFile.Current != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: #008080;"&gt;24&lt;/span&gt;                                 {&lt;br /&gt;&lt;span style="color: #008080;"&gt;25&lt;/span&gt;                                     Console.WriteLine(iFile.Current.ToString());&lt;br /&gt;&lt;span style="color: #008080;"&gt;26&lt;/span&gt;                                     nfile++;&lt;br /&gt;&lt;span style="color: #008080;"&gt;27&lt;/span&gt;                                 }&lt;br /&gt;&lt;span style="color: #008080;"&gt;28&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;29&lt;/span&gt;                             }&lt;br /&gt;&lt;span style="color: #008080;"&gt;30&lt;/span&gt;                             &lt;span style="color: #0000ff;"&gt;while&lt;/span&gt; (iFile.MoveNext());&lt;br /&gt;&lt;span style="color: #008080;"&gt;31&lt;/span&gt;                         }&lt;br /&gt;&lt;span style="color: #008080;"&gt;32&lt;/span&gt;                         &lt;span style="color: #0000ff;"&gt;catch&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt;33&lt;/span&gt;                         {&lt;br /&gt;&lt;span style="color: #008080;"&gt;34&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;35&lt;/span&gt;                         }&lt;br /&gt;&lt;span style="color: #008080;"&gt;36&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;37&lt;/span&gt;                         BFS(&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; DirectoryInfo(iDir.Current.ToString()), &lt;span style="color: #0000ff;"&gt;ref&lt;/span&gt; nfile, &lt;span style="color: #0000ff;"&gt;ref&lt;/span&gt; ndir);&lt;br /&gt;&lt;span style="color: #008080;"&gt;38&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;39&lt;/span&gt;                     }&lt;br /&gt;&lt;span style="color: #008080;"&gt;40&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;41&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;42&lt;/span&gt;                 }&lt;br /&gt;&lt;span style="color: #008080;"&gt;43&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;while&lt;/span&gt; (iDir.MoveNext());&lt;br /&gt;&lt;span style="color: #008080;"&gt;44&lt;/span&gt;             }&lt;br /&gt;&lt;span style="color: #008080;"&gt;45&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;catch&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;46&lt;/span&gt;             {&lt;br /&gt;&lt;span style="color: #008080;"&gt;47&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;48&lt;/span&gt;             }&lt;br /&gt;&lt;span style="color: #008080;"&gt;49&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;50&lt;/span&gt;         }&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;pre&gt;&lt;span style="color: #008080;"&gt; 1&lt;/span&gt;  &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; BFS2(DirectoryInfo dir, &lt;span style="color: #0000ff;"&gt;ref&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;long&lt;/span&gt; nFile, &lt;span style="color: #0000ff;"&gt;ref&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;long&lt;/span&gt; nDir)&lt;br /&gt;&lt;span style="color: #008080;"&gt; 2&lt;/span&gt;         {&lt;br /&gt;&lt;span style="color: #008080;"&gt; 3&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;try&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 4&lt;/span&gt;             {&lt;br /&gt;&lt;span style="color: #008080;"&gt; 5&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (dir.Exists)&lt;br /&gt;&lt;span style="color: #008080;"&gt; 6&lt;/span&gt;                 {&lt;br /&gt;&lt;span style="color: #008080;"&gt; 7&lt;/span&gt;                     Console.WriteLine(dir.FullName);&lt;br /&gt;&lt;span style="color: #008080;"&gt; 8&lt;/span&gt;                     nDir++;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 9&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;10&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;try&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt;11&lt;/span&gt;                     {&lt;br /&gt;&lt;span style="color: #008080;"&gt;12&lt;/span&gt;                         FileInfo[] arrFile = dir.GetFiles();&lt;br /&gt;&lt;span style="color: #008080;"&gt;13&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;14&lt;/span&gt;                         &lt;span style="color: #0000ff;"&gt;foreach&lt;/span&gt; (FileInfo fiNode &lt;span style="color: #0000ff;"&gt;in&lt;/span&gt; arrFile)&lt;br /&gt;&lt;span style="color: #008080;"&gt;15&lt;/span&gt;                         {&lt;br /&gt;&lt;span style="color: #008080;"&gt;16&lt;/span&gt;                             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (fiNode.Exists)&lt;br /&gt;&lt;span style="color: #008080;"&gt;17&lt;/span&gt;                             {&lt;br /&gt;&lt;span style="color: #008080;"&gt;18&lt;/span&gt;                                 Console.WriteLine(fiNode.FullName);&lt;br /&gt;&lt;span style="color: #008080;"&gt;19&lt;/span&gt;                                 nFile++;&lt;br /&gt;&lt;span style="color: #008080;"&gt;20&lt;/span&gt;                             }&lt;br /&gt;&lt;span style="color: #008080;"&gt;21&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;22&lt;/span&gt;                         }&lt;br /&gt;&lt;span style="color: #008080;"&gt;23&lt;/span&gt;                     }&lt;br /&gt;&lt;span style="color: #008080;"&gt;24&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;catch&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt;25&lt;/span&gt;                     {&lt;br /&gt;&lt;span style="color: #008080;"&gt;26&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;27&lt;/span&gt;                     }&lt;br /&gt;&lt;span style="color: #008080;"&gt;28&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;29&lt;/span&gt;                 }&lt;br /&gt;&lt;span style="color: #008080;"&gt;30&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;31&lt;/span&gt;                 DirectoryInfo[] arrDir = dir.GetDirectories();&lt;br /&gt;&lt;span style="color: #008080;"&gt;32&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;foreach&lt;/span&gt; (DirectoryInfo node &lt;span style="color: #0000ff;"&gt;in&lt;/span&gt; arrDir)&lt;br /&gt;&lt;span style="color: #008080;"&gt;33&lt;/span&gt;                 {&lt;br /&gt;&lt;span style="color: #008080;"&gt;34&lt;/span&gt;                     BFS2(node, &lt;span style="color: #0000ff;"&gt;ref&lt;/span&gt; nFile, &lt;span style="color: #0000ff;"&gt;ref&lt;/span&gt; nDir);&lt;br /&gt;&lt;span style="color: #008080;"&gt;35&lt;/span&gt;                 }&lt;br /&gt;&lt;span style="color: #008080;"&gt;36&lt;/span&gt;             }&lt;br /&gt;&lt;span style="color: #008080;"&gt;37&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;catch&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;38&lt;/span&gt;             {&lt;br /&gt;&lt;span style="color: #008080;"&gt;39&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;40&lt;/span&gt;             }&lt;br /&gt;&lt;span style="color: #008080;"&gt;41&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;42&lt;/span&gt;         }&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;pre&gt;&lt;span style="color: #008080;"&gt; 1&lt;/span&gt; &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 2&lt;/span&gt; &lt;span style="color: #008000;"&gt;        &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 广度优先遍历 ： 用队列&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 3&lt;/span&gt; &lt;span style="color: #008000;"&gt;        &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 4&lt;/span&gt; &lt;span style="color: #008000;"&gt;        &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;param name="dir"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 5&lt;/span&gt; &lt;span style="color: #808080;"&gt;&lt;/span&gt;        &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; BFS(DirectoryInfo dir)&lt;br /&gt;&lt;span style="color: #008080;"&gt; 6&lt;/span&gt;         {&lt;br /&gt;&lt;span style="color: #008080;"&gt; 7&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;long&lt;/span&gt; nFileCount = &lt;span style="color: #800080;"&gt;0&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 8&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;long&lt;/span&gt; nDirCount = &lt;span style="color: #800080;"&gt;0&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 9&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;10&lt;/span&gt;             &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;文件队列&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;11&lt;/span&gt; &lt;span style="color: #008000;"&gt;&lt;/span&gt;            Queue&amp;lt;DirectoryInfo&amp;gt; dirList = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; Queue&amp;lt;DirectoryInfo&amp;gt;();&lt;br /&gt;&lt;span style="color: #008080;"&gt;12&lt;/span&gt;             dirList.Enqueue(dir);&lt;br /&gt;&lt;span style="color: #008080;"&gt;13&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;14&lt;/span&gt;             &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;是否包含有子文件夹&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;15&lt;/span&gt; &lt;span style="color: #008000;"&gt;&lt;/span&gt;            &lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt; bIsHasChildDir = &lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #008080;"&gt;16&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;17&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;while&lt;/span&gt; (bIsHasChildDir)&lt;br /&gt;&lt;span style="color: #008080;"&gt;18&lt;/span&gt;             {&lt;br /&gt;&lt;span style="color: #008080;"&gt;19&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;20&lt;/span&gt;                 &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;1. 文件夹出队  &lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;21&lt;/span&gt; &lt;span style="color: #008000;"&gt;                &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;取文件信息 &lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;22&lt;/span&gt; &lt;span style="color: #008000;"&gt;                &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;取子文件夹信息 &lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;23&lt;/span&gt; &lt;span style="color: #008000;"&gt;                &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;输出出队文件夹信息&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;24&lt;/span&gt; &lt;span style="color: #008000;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt;25&lt;/span&gt;                 DirectoryInfo WriteDir = dirList.Dequeue();&lt;br /&gt;&lt;span style="color: #008080;"&gt;26&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;27&lt;/span&gt;                 Console.WriteLine(WriteDir.FullName);&lt;br /&gt;&lt;span style="color: #008080;"&gt;28&lt;/span&gt;                 nDirCount++;&lt;br /&gt;&lt;span style="color: #008080;"&gt;29&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;30&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;try&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt;31&lt;/span&gt;                 {&lt;br /&gt;&lt;span style="color: #008080;"&gt;32&lt;/span&gt;                     &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;2.当前目录文件扫描（广度遍历）&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;33&lt;/span&gt; &lt;span style="color: #008000;"&gt;&lt;/span&gt;                    FileInfo[] fiList = WriteDir.GetFiles();&lt;br /&gt;&lt;span style="color: #008080;"&gt;34&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;35&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;foreach&lt;/span&gt; (FileInfo node &lt;span style="color: #0000ff;"&gt;in&lt;/span&gt; fiList)&lt;br /&gt;&lt;span style="color: #008080;"&gt;36&lt;/span&gt;                     {&lt;br /&gt;&lt;span style="color: #008080;"&gt;37&lt;/span&gt;                         &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (node.Exists)&lt;br /&gt;&lt;span style="color: #008080;"&gt;38&lt;/span&gt;                         {&lt;br /&gt;&lt;span style="color: #008080;"&gt;39&lt;/span&gt;                             Console.WriteLine(node.FullName);&lt;br /&gt;&lt;span style="color: #008080;"&gt;40&lt;/span&gt;                             nFileCount++;&lt;br /&gt;&lt;span style="color: #008080;"&gt;41&lt;/span&gt;                         }&lt;br /&gt;&lt;span style="color: #008080;"&gt;42&lt;/span&gt;                     }&lt;br /&gt;&lt;span style="color: #008080;"&gt;43&lt;/span&gt;                 }&lt;br /&gt;&lt;span style="color: #008080;"&gt;44&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;catch&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;45&lt;/span&gt;                 {&lt;br /&gt;&lt;span style="color: #008080;"&gt;46&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;47&lt;/span&gt;                 }&lt;br /&gt;&lt;span style="color: #008080;"&gt;48&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;49&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;try&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt;50&lt;/span&gt;                 {&lt;br /&gt;&lt;span style="color: #008080;"&gt;51&lt;/span&gt;                     &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;3.子文件夹入队&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;52&lt;/span&gt; &lt;span style="color: #008000;"&gt;&lt;/span&gt;                    DirectoryInfo[] diList = WriteDir.GetDirectories();&lt;br /&gt;&lt;span style="color: #008080;"&gt;53&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;54&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;foreach&lt;/span&gt; (DirectoryInfo node &lt;span style="color: #0000ff;"&gt;in&lt;/span&gt; diList)&lt;br /&gt;&lt;span style="color: #008080;"&gt;55&lt;/span&gt;                     {&lt;br /&gt;&lt;span style="color: #008080;"&gt;56&lt;/span&gt;                         &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (node.Exists)&lt;br /&gt;&lt;span style="color: #008080;"&gt;57&lt;/span&gt;                         {&lt;br /&gt;&lt;span style="color: #008080;"&gt;58&lt;/span&gt;                             &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;入队,同时开始访问文件夹&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;59&lt;/span&gt; &lt;span style="color: #008000;"&gt;&lt;/span&gt;                            dirList.Enqueue(node);&lt;br /&gt;&lt;span style="color: #008080;"&gt;60&lt;/span&gt;                         }&lt;br /&gt;&lt;span style="color: #008080;"&gt;61&lt;/span&gt;                     }&lt;br /&gt;&lt;span style="color: #008080;"&gt;62&lt;/span&gt;                 }&lt;br /&gt;&lt;span style="color: #008080;"&gt;63&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;catch&lt;/span&gt; { }&lt;br /&gt;&lt;span style="color: #008080;"&gt;64&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;65&lt;/span&gt;                 &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;队列中没有文件夹可访问&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;66&lt;/span&gt; &lt;span style="color: #008000;"&gt;&lt;/span&gt;                &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (dirList.Count == &lt;span style="color: #800080;"&gt;0&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: #008080;"&gt;67&lt;/span&gt;                 {&lt;br /&gt;&lt;span style="color: #008080;"&gt;68&lt;/span&gt;                     bIsHasChildDir = &lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #008080;"&gt;69&lt;/span&gt;                 }&lt;br /&gt;&lt;span style="color: #008080;"&gt;70&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;71&lt;/span&gt;             }&lt;br /&gt;&lt;span style="color: #008080;"&gt;72&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;73&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;.Format(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;FileCount:{0}, DirCount:{1}&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;, nFileCount, nDirCount);&lt;br /&gt;&lt;span style="color: #008080;"&gt;74&lt;/span&gt;   &lt;br /&gt;&lt;span style="color: #008080;"&gt;75&lt;/span&gt;         }&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;pre&gt;&lt;span style="color: #008080;"&gt; 1&lt;/span&gt; &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 2&lt;/span&gt; &lt;span style="color: #008000;"&gt;        &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 深度优先遍历 : 用栈 =二叉树的前序遍历  （传统深度遍历）&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 3&lt;/span&gt; &lt;span style="color: #008000;"&gt;        &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 4&lt;/span&gt; &lt;span style="color: #008000;"&gt;        &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;param name="dir"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 5&lt;/span&gt; &lt;span style="color: #808080;"&gt;&lt;/span&gt;        &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;  DFS(DirectoryInfo dir) &lt;br /&gt;&lt;span style="color: #008080;"&gt; 6&lt;/span&gt;         {&lt;br /&gt;&lt;span style="color: #008080;"&gt; 7&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;long&lt;/span&gt; nFileCount = &lt;span style="color: #800080;"&gt;0&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 8&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;long&lt;/span&gt; nDirCount = &lt;span style="color: #800080;"&gt;0&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 9&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;10&lt;/span&gt;             &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;1.把root 压入 栈中&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;11&lt;/span&gt; &lt;span style="color: #008000;"&gt;&lt;/span&gt;            Stack&amp;lt;DirectoryInfo&amp;gt; dirStack = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; Stack&amp;lt;DirectoryInfo&amp;gt;();&lt;br /&gt;&lt;span style="color: #008080;"&gt;12&lt;/span&gt;             dirStack.Push(dir);&lt;br /&gt;&lt;span style="color: #008080;"&gt;13&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;14&lt;/span&gt;             DirectoryInfo parent = &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #008080;"&gt;15&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;while&lt;/span&gt; (dirStack.Count != &lt;span style="color: #800080;"&gt;0&lt;/span&gt;) &lt;br /&gt;&lt;span style="color: #008080;"&gt;16&lt;/span&gt;             {&lt;br /&gt;&lt;span style="color: #008080;"&gt;17&lt;/span&gt;                 &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;读顶栈&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;18&lt;/span&gt; &lt;span style="color: #008000;"&gt;&lt;/span&gt;                DirectoryInfo current = dirStack.Pop();&lt;br /&gt;&lt;span style="color: #008080;"&gt;19&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;20&lt;/span&gt;                 &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;输出当前目录&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;21&lt;/span&gt; &lt;span style="color: #008000;"&gt;&lt;/span&gt;                Console.WriteLine(current.FullName);&lt;br /&gt;&lt;span style="color: #008080;"&gt;22&lt;/span&gt;                 nDirCount++;&lt;br /&gt;&lt;span style="color: #008080;"&gt;23&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;try&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt;24&lt;/span&gt;                 {&lt;br /&gt;&lt;span style="color: #008080;"&gt;25&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;26&lt;/span&gt;                     FileInfo[] fiList = current.GetFiles();&lt;br /&gt;&lt;span style="color: #008080;"&gt;27&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;28&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;foreach&lt;/span&gt; (FileInfo node &lt;span style="color: #0000ff;"&gt;in&lt;/span&gt; fiList)&lt;br /&gt;&lt;span style="color: #008080;"&gt;29&lt;/span&gt;                     {&lt;br /&gt;&lt;span style="color: #008080;"&gt;30&lt;/span&gt;                         Console.WriteLine(node.FullName);&lt;br /&gt;&lt;span style="color: #008080;"&gt;31&lt;/span&gt;                         nFileCount++;&lt;br /&gt;&lt;span style="color: #008080;"&gt;32&lt;/span&gt;                     }&lt;br /&gt;&lt;span style="color: #008080;"&gt;33&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;34&lt;/span&gt;                 }&lt;br /&gt;&lt;span style="color: #008080;"&gt;35&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;catch&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt;36&lt;/span&gt;                 {&lt;br /&gt;&lt;span style="color: #008080;"&gt;37&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;38&lt;/span&gt;                 }&lt;br /&gt;&lt;span style="color: #008080;"&gt;39&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;40&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;41&lt;/span&gt;                 &lt;span style="color: #008000;"&gt;//&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;42&lt;/span&gt; &lt;span style="color: #008000;"&gt;&lt;/span&gt;                &lt;span style="color: #0000ff;"&gt;try&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt;43&lt;/span&gt;                 {&lt;br /&gt;&lt;span style="color: #008080;"&gt;44&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;45&lt;/span&gt;                     DirectoryInfo[] dirList = current.GetDirectories();&lt;br /&gt;&lt;span style="color: #008080;"&gt;46&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;47&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;foreach&lt;/span&gt; (DirectoryInfo node &lt;span style="color: #0000ff;"&gt;in&lt;/span&gt; dirList)&lt;br /&gt;&lt;span style="color: #008080;"&gt;48&lt;/span&gt;                     {&lt;br /&gt;&lt;span style="color: #008080;"&gt;49&lt;/span&gt;                         dirStack.Push(node);&lt;br /&gt;&lt;span style="color: #008080;"&gt;50&lt;/span&gt;                     }&lt;br /&gt;&lt;span style="color: #008080;"&gt;51&lt;/span&gt;                 }&lt;br /&gt;&lt;span style="color: #008080;"&gt;52&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;catch&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;53&lt;/span&gt;                 {&lt;br /&gt;&lt;span style="color: #008080;"&gt;54&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;55&lt;/span&gt;                 }&lt;br /&gt;&lt;span style="color: #008080;"&gt;56&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;57&lt;/span&gt;             }&lt;br /&gt;&lt;span style="color: #008080;"&gt;58&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;59&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;.Format(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;FileCount:{0}, DirCount:{1}&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;, nFileCount, nDirCount);&lt;br /&gt;&lt;span style="color: #008080;"&gt;60&lt;/span&gt;         }&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;实现&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;pre&gt;&lt;span style="color: #008080;"&gt; 1&lt;/span&gt;  &lt;span style="color: #0000ff;"&gt;class&lt;/span&gt; Program&lt;br /&gt;&lt;span style="color: #008080;"&gt; 2&lt;/span&gt;     {&lt;br /&gt;&lt;span style="color: #008080;"&gt; 3&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt; 4&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; GetTimeSpanFormatText(DateTime dateStart)&lt;br /&gt;&lt;span style="color: #008080;"&gt; 5&lt;/span&gt;         {&lt;br /&gt;&lt;span style="color: #008080;"&gt; 6&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; strSpan = &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;span:{0}d{1}h{2}m{3}s{4}ms&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 7&lt;/span&gt;             TimeSpan tsSpan = DateTime.Now - dateStart;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 8&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; strReturn = &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;.Format(strSpan, tsSpan.Days, tsSpan.Hours, tsSpan.Minutes, tsSpan.Seconds, tsSpan.Milliseconds);&lt;br /&gt;&lt;span style="color: #008080;"&gt; 9&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; strReturn;&lt;br /&gt;&lt;span style="color: #008080;"&gt;10&lt;/span&gt;         }&lt;br /&gt;&lt;span style="color: #008080;"&gt;11&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;12&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; Main(&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;[] args)&lt;br /&gt;&lt;span style="color: #008080;"&gt;13&lt;/span&gt;         {&lt;br /&gt;&lt;span style="color: #008080;"&gt;14&lt;/span&gt;             DirectoryInfo root = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; DirectoryInfo(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;C:\\&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: #008080;"&gt;15&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;16&lt;/span&gt;             Recursion lsFile = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; Recursion();&lt;br /&gt;&lt;span style="color: #008080;"&gt;17&lt;/span&gt;             DateTime start = DateTime.Now;&lt;br /&gt;&lt;span style="color: #008080;"&gt;18&lt;/span&gt;             Console.WriteLine(start.ToLongTimeString());&lt;br /&gt;&lt;span style="color: #008080;"&gt;19&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;long&lt;/span&gt; nFileCount1 = &lt;span style="color: #800080;"&gt;0&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #008080;"&gt;20&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;long&lt;/span&gt; nDirCount1 = &lt;span style="color: #800080;"&gt;0&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #008080;"&gt;21&lt;/span&gt;             lsFile.BFS(root, &lt;span style="color: #0000ff;"&gt;ref&lt;/span&gt; nFileCount1, &lt;span style="color: #0000ff;"&gt;ref&lt;/span&gt; nDirCount1);&lt;br /&gt;&lt;span style="color: #008080;"&gt;22&lt;/span&gt;             Console.WriteLine(GetTimeSpanFormatText(start));&lt;br /&gt;&lt;span style="color: #008080;"&gt;23&lt;/span&gt;             Console.WriteLine(&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;.Format(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;FileCount:{0}, DirCount:{1}&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;, nFileCount1, nDirCount1));&lt;br /&gt;&lt;span style="color: #008080;"&gt;24&lt;/span&gt;             Console.WriteLine(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;OK&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: #008080;"&gt;25&lt;/span&gt;             Console.ReadLine();&lt;br /&gt;&lt;span style="color: #008080;"&gt;26&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;27&lt;/span&gt;             Recursion lsFile2 = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; Recursion();&lt;br /&gt;&lt;span style="color: #008080;"&gt;28&lt;/span&gt;             DateTime start2 = DateTime.Now;&lt;br /&gt;&lt;span style="color: #008080;"&gt;29&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;long&lt;/span&gt; nFileCount = &lt;span style="color: #800080;"&gt;0&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #008080;"&gt;30&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;long&lt;/span&gt; nDirCount = &lt;span style="color: #800080;"&gt;0&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #008080;"&gt;31&lt;/span&gt;             lsFile2.BFS2(root, &lt;span style="color: #0000ff;"&gt;ref&lt;/span&gt; nFileCount, &lt;span style="color: #0000ff;"&gt;ref&lt;/span&gt; nDirCount);&lt;br /&gt;&lt;span style="color: #008080;"&gt;32&lt;/span&gt;             Console.WriteLine(GetTimeSpanFormatText(start2));&lt;br /&gt;&lt;span style="color: #008080;"&gt;33&lt;/span&gt;             Console.WriteLine(&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;.Format(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;FileCount:{0}, DirCount:{1}&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;, nFileCount, nDirCount));&lt;br /&gt;&lt;span style="color: #008080;"&gt;34&lt;/span&gt;             Console.WriteLine(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;OK&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: #008080;"&gt;35&lt;/span&gt;             &lt;br /&gt;&lt;span style="color: #008080;"&gt;36&lt;/span&gt;             Console.ReadLine();&lt;br /&gt;&lt;span style="color: #008080;"&gt;37&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;38&lt;/span&gt;             UnRecursion btree = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; UnRecursion();&lt;br /&gt;&lt;span style="color: #008080;"&gt;39&lt;/span&gt;             DateTime start3 = DateTime.Now;&lt;br /&gt;&lt;span style="color: #008080;"&gt;40&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; strBFS = btree.BFS(root);&lt;br /&gt;&lt;span style="color: #008080;"&gt;41&lt;/span&gt;             Console.WriteLine(GetTimeSpanFormatText(start3));&lt;br /&gt;&lt;span style="color: #008080;"&gt;42&lt;/span&gt;             Console.WriteLine(strBFS);&lt;br /&gt;&lt;span style="color: #008080;"&gt;43&lt;/span&gt;             Console.WriteLine(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;OK&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: #008080;"&gt;44&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;45&lt;/span&gt;             Console.ReadLine();&lt;br /&gt;&lt;span style="color: #008080;"&gt;46&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;47&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;48&lt;/span&gt;             UnRecursion btree3 = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; UnRecursion();&lt;br /&gt;&lt;span style="color: #008080;"&gt;49&lt;/span&gt;             DateTime start5 = DateTime.Now;&lt;br /&gt;&lt;span style="color: #008080;"&gt;50&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; strResult = btree3.DFS(root);&lt;br /&gt;&lt;span style="color: #008080;"&gt;51&lt;/span&gt;             Console.WriteLine(GetTimeSpanFormatText(start5));&lt;br /&gt;&lt;span style="color: #008080;"&gt;52&lt;/span&gt;             Console.WriteLine(strResult);&lt;br /&gt;&lt;span style="color: #008080;"&gt;53&lt;/span&gt;             Console.WriteLine(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;OK&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: #008080;"&gt;54&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;55&lt;/span&gt;             Console.ReadLine();&lt;br /&gt;&lt;span style="color: #008080;"&gt;56&lt;/span&gt;            &lt;br /&gt;&lt;span style="color: #008080;"&gt;57&lt;/span&gt;         }&lt;br /&gt;&lt;span style="color: #008080;"&gt;58&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt;59&lt;/span&gt;        &lt;br /&gt;&lt;span style="color: #008080;"&gt;60&lt;/span&gt;     }&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;结果对比&lt;/p&gt;&#xD;
&lt;p&gt;0:2:41:070&amp;nbsp;&amp;nbsp; C:\&amp;nbsp; 递归1&amp;nbsp;&amp;nbsp; file 138917 dir 28678&lt;br /&gt;0:2:52:209&amp;nbsp;&amp;nbsp; C:\&amp;nbsp; 递归2&amp;nbsp;&amp;nbsp; file 138919 dir 28673&lt;br /&gt;0:2:53:113&amp;nbsp;&amp;nbsp; C:\&amp;nbsp; BFS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; file 138915 dir 28673&lt;br /&gt;0:4:57:523&amp;nbsp;&amp;nbsp; C:\&amp;nbsp; DFS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; file 138915 dir 28673&lt;/p&gt;&#xD;
&lt;p&gt;结论&lt;/p&gt;&#xD;
&lt;p&gt;[单线程的情况下]&lt;/p&gt;&#xD;
&lt;p&gt;对于文件系统树的遍历来说使用广度优先要比深度优先要更好些，理由是：&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1、DFS每次遇到目录则立即深入搜索，因此需要保存大量句柄，而BFS则避免用太多句柄；&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2、同一个目录下的文件在硬盘的物理结构上更邻近些，所以BFS更快&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/zzyn/aggbug/2197036.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/zzyn/archive/2011/10/01/2197036.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/zzyn/archive/2011/09/05/2167514.html</id><title type="text">Wordpress template workflow map</title><summary type="text">Function_Reference http://codex.wordpress.org/Function_ReferenceWordPress_Coding_Standards http://codex.wordpress.org/WordPress_Coding_StandardsStepping_Into_Template_Tagshttp://codex.wordpress.org/Stepping_Into_Template_TagsStepping_Into_Templates http://codex.wordpress.org/Stepping_Into_TemplatesC</summary><published>2011-09-05T06:53:00Z</published><updated>2011-09-05T06:53:00Z</updated><author><name>冷风旋</name><uri>http://www.cnblogs.com/zzyn/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zzyn/archive/2011/09/05/2167514.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zzyn/archive/2011/09/05/2167514.html"/><content type="html">&lt;p&gt;Function_Reference &amp;nbsp;&lt;a href="http://codex.wordpress.org/Function_Reference"&gt;http://codex.wordpress.org/Function_Reference&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;WordPress_Coding_Standards&amp;nbsp; &lt;a href="http://codex.wordpress.org/WordPress_Coding_Standards"&gt;http://codex.wordpress.org/WordPress_Coding_Standards&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Stepping_Into_Template_Tags&amp;nbsp;&amp;nbsp;&lt;a href="http://codex.wordpress.org/Stepping_Into_Template_Tags"&gt;http://codex.wordpress.org/Stepping_Into_Template_Tags&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Stepping_Into_Templates &amp;nbsp;&lt;a href="http://codex.wordpress.org/Stepping_Into_Templates"&gt;http://codex.wordpress.org/Stepping_Into_Templates&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;CSS&amp;nbsp;&lt;a href="http://codex.wordpress.org/CSS"&gt;http://codex.wordpress.org/CSS&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://pic002.cnblogs.com/images/2011/20436/2011090514503864.png" width="897" height="560" /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/zzyn/aggbug/2167514.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/zzyn/archive/2011/09/05/2167514.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/zzyn/archive/2011/06/30/2094847.html</id><title type="text">浅谈Python web框架</title><summary type="text">说到web framework，Ruby的世界Rails一统江湖，而Python则是一个百花齐放的世界，各种micro-framework、framework不可胜数，不完全列表见：http://wiki.python.org/moin/WebFrameworks。虽然另一大脚本语言PHP也有不少框架，但远没有Python这么夸张，也正是因为Python web framework（Python web开发框架，以下简称Python框架）太多，所以在Python社区总有关于Python框架孰优孰劣的话题，讨论的时间跨度甚至长达3-5年。Python这么多框架，能挨个玩个遍的人不多，坦白的说我也</summary><published>2011-06-30T09:10:00Z</published><updated>2011-06-30T09:10:00Z</updated><author><name>冷风旋</name><uri>http://www.cnblogs.com/zzyn/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zzyn/archive/2011/06/30/2094847.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zzyn/archive/2011/06/30/2094847.html"/><content type="html">&lt;p&gt;说到web framework，Ruby的世界Rails一统江湖，而Python则是一个百花齐放的世界，各种micro-framework、framework不可胜数，不完全列表见：&lt;a href="http://wiki.python.org/moin/WebFrameworks" target="_blank"&gt;http://wiki.python.org/moin/WebFrameworks&lt;/a&gt;。虽然另一大脚本语言PHP也有不少框架，但远没有Python这么夸张，也正是因为Python web framework（Python web开发框架，以下简称Python框架）太多，所以在Python社区总有关于Python框架孰优孰劣的话题，讨论的时间跨度甚至长达3-5年。&lt;/p&gt;&#xD;
&lt;p&gt;Python这么多框架，能挨个玩个遍的人不多，坦白的说我也只用过其中的三个开发过项目，另外一些稍微接触过，所以这里只能浅谈一下，欢迎懂行的朋友们补充、拍砖。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.djangoproject.com/" target="_blank"&gt;Django&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;img  title="hdr_logo" src="http://feilong.me/wp-content/uploads/2011/01/hdr_logo.gif" width="117" /&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Python框架虽然说是百花齐放，但仍然有那么一家是最大的，它就是Django。要说Django是Python框架里最好的，有人同意也有人坚决反对，但说Django的文档最完善、市场占有率最高、招聘职位最多估计大家都没什么意见。Django为人所称道的地方主要有：&lt;/p&gt;&#xD;
&lt;ul&gt;&#xD;
&lt;li&gt;完美的文档，Django的成功，我觉得很大一部分原因要归功于Django近乎完美的官方文档（包括Django book）。&lt;/li&gt;&#xD;
&lt;li&gt;全套的解决方案，Django象Rails一样，提供全套的解决方案（full-stack framework + batteries included），基本要什么有什么（比如：cache、session、feed、orm、geo、auth），而且全部Django自己造，开发网站应手的工具Django基本都给你做好了，因此开发效率是不用说的，出了问题也算好找，不在你的代码里就在Django的源码里。&lt;/li&gt;&#xD;
&lt;li&gt;强大的URL路由配置，Django让你可以设计出非常优雅的URL，在Django里你基本可以跟丑陋的GET参数说拜拜。&lt;/li&gt;&#xD;
&lt;li&gt;自助管理后台，admin interface是Django里比较吸引眼球的一项contrib，让你几乎不用写一行代码就拥有一个完整的后台管理界面。&lt;/li&gt;&#xD;
&lt;/ul&gt;&#xD;
&lt;p&gt;而Django的缺点主要源自Django坚持自己造所有的轮子，整个系统相对封闭，Django最为人诟病的地方有：&lt;/p&gt;&#xD;
&lt;ul&gt;&#xD;
&lt;li&gt;系统紧耦合，如果你觉得Django内置的某项功能不是很好，想用喜欢的第三方库来代替是很难的，比如下面将要说的ORM、Template。要在Django里用SQLAlchemy或Mako几乎是不可能，即使打了一些补丁用上了也会让你觉得非常非常别扭。&lt;/li&gt;&#xD;
&lt;li&gt;Django自带的ORM远不如SQLAlchemy强大，除了在Django这一亩三分地，SQLAlchemy是Python世界里事实上的ORM标准，其它框架都支持SQLAlchemy了，唯独Django仍然坚持自己的那一套。Django的开发人员对SQLAlchemy的支持也是有过讨论和尝试的，不过最终还是放弃了，估计是代价太高且跟Django其它的模块很难合到一块。&lt;/li&gt;&#xD;
&lt;li&gt;Template功能比较弱，不能插入Python代码，要写复杂一点的逻辑需要另外用Python实现Tag或Filter。关于模板这一点，一直以来争论比较多，最近有两篇关于Python模板的比较有意思的文章可供参考：&lt;/li&gt;&#xD;
&lt;/ul&gt;&#xD;
&lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt;&lt;ol&gt;&#xD;
&lt;li&gt;&lt;a href="http://pydanny.blogspot.com/2010/12/stupid-template-languages.html" target="_blank"&gt;http://pydanny.blogspot.com/2010/12/stupid-template-languages.html&lt;/a&gt;（need proxy）&lt;/li&gt;&#xD;
&lt;li&gt;&lt;a href="http://techspot.zzzeek.org/2010/12/04/in-response-to-stupid-template-languages/" target="_blank"&gt;http://techspot.zzzeek.org/2010/12/04/in-response-to-stupid-template-languages/&lt;/a&gt;&lt;/li&gt;&#xD;
&lt;/ol&gt;&lt;/blockquote&gt;&#xD;
&lt;ul&gt;&#xD;
&lt;li&gt;URL配置虽然强大，但全部要手写，这一点跟Rails的Convention over configuration的理念完全相左，高手和初识Django的人配出来的URL会有很大差异。&lt;/li&gt;&#xD;
&lt;li&gt;让人纠结的auth模块，Django的auth跟其它模块结合紧密，功能也挺强的，就是做的有点过了，用户的数据库schema都给你定好了，这样问题就来了，比如很多网站要求email地址唯一，可schema里这个字段的值不是唯一的，纠结是必须的了。&lt;/li&gt;&#xD;
&lt;li&gt;Python文件做配置文件，而不是更常见的ini、xml或yaml等形式。这本身不是什么问题，可是因为理论上来说settings的值是能够动态的改变的（虽然大家不会这么干），但这不是最佳实践的体现。&lt;/li&gt;&#xD;
&lt;/ul&gt;&#xD;
&lt;p&gt;总的来说，Django大包大揽，用它来快速开发一些Web运用是很不错的。如果你顺着Django的设计哲学来，你会觉得Django很好用，越用越爽；相反，你如果不能融入或接受Django的设计哲学，你用Django一定会很痛苦，趁早放弃的好。所以说在有些人眼里Django无异于仙丹，但对有一些人来说它又是毒药且剧毒。&lt;/p&gt;&#xD;
&lt;p&gt;Django案例有&lt;a href="http://disqus.com/" target="_blank"&gt;disqus.com&lt;/a&gt;、&lt;a href="http://bitbucket.org/" target="_blank"&gt;bitbucket.org&lt;/a&gt;、&lt;a href="http://www.haibao.cn/" target="_blank"&gt;海报网&lt;/a&gt;等。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.pylonshq.com/" target="_blank"&gt;Pylons&lt;/a&gt;&amp;nbsp;&amp;amp;&amp;nbsp;&lt;a href="http://turbogears.org/" target="_blank"&gt;TurboGears&lt;/a&gt;&amp;nbsp;&amp;amp;&amp;nbsp;&lt;a href="http://bfg.repoze.org/" target="_blank"&gt;repoze.bfg&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img  title="pylons_logo" src="http://feilong.me/wp-content/uploads/2011/01/pylons_logo.jpg" width="346" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;除了Django另一个大头就是Pylons了，因为TurboGears2.x是基于Pylons来做的，而repoze.bfg也已经并入Pylons project里这个大的项目里，后面不再单独讨论TurboGears和repoze.bfg了。&lt;/p&gt;&#xD;
&lt;p&gt;Pylons和Django的设计理念完全不同，Pylons本身只有两千行左右的Python代码，不过它还附带有一些几乎就是Pylons御用的第三方模块。Pylons只提供一个架子和可选方案，你可以根据自己的喜好自由的选择Template、ORM、form、auth等组件，系统高度可定制。我们常说Python是一个胶水语言(glue language)，那么我们完全可以说Pylons就是一个用胶水语言设计的胶水框架:)&lt;/p&gt;&#xD;
&lt;p&gt;选择Pylons多是选择了它的自由，选择了自由的同时也预示着你选择了噩梦：&lt;/p&gt;&#xD;
&lt;ul&gt;&#xD;
&lt;li&gt;学习噩梦，Pylons依赖于许多第三方库，它们并不是Pylons造，你学Pylons的同时还得学这些库怎么使用，关键有些时候你都不知道你要学什么。Pylons的学习曲线相对比Django要高的多，而之前Pylons的官方文档也一直是人批评的对象，好在后来出了&lt;a href="http://pylonsbook.com/en/1.1/" target="_blank"&gt;The Definitive Guide to Pylons&lt;/a&gt;这本书，这一局面有所改观。因为这个原因，Pylons一度被誉为只适合高手使用的Python框架。&lt;/li&gt;&#xD;
&lt;li&gt;调试噩梦，因为牵涉到的模块多，一旦有错误发生就比较难定位问题处在哪里。可能是你写的程序的错、也可能是Pylons出错了、再或是SQLAlchemy出错了、搞不好是formencode有bug，反正很凌乱了。这个只有用的很熟了才能解决这个问题。&lt;/li&gt;&#xD;
&lt;li&gt;升级噩梦，安装Pylons大大小小共要安装近20个Python模块，各有各自的版本号，要升级Pylons的版本，哪个模块出了不兼容的问题都有可能，升级基本上很难很难。至今reddit的Pylons还停留在古董的0.9.6上，SQLAlchemy也还是0.5.3的版本，应该跟这条有关系。所以大家玩Pylons一定要结合virtualenv来玩，给自己留条后路，不然会死得很惨。&lt;/li&gt;&#xD;
&lt;/ul&gt;&#xD;
&lt;p&gt;Pylons和repoze.bfg的融合可能会催生下一个能挑战Django地位的框架。&lt;/p&gt;&#xD;
&lt;p&gt;Pylons的案例有&lt;a href="http://www.reddit.com/" target="_blank"&gt;reddit.com&lt;/a&gt;、&lt;a href="http://www.dropbox.com/" target="_blank"&gt;dropbox.com&lt;/a&gt;、&lt;a href="http://www.quora.com/" target="_blank"&gt;quora.com&lt;/a&gt;等。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.tornadoweb.org/" target="_blank"&gt;Tornado&amp;nbsp;&lt;/a&gt;&amp;amp;&amp;nbsp;&lt;a href="http://webpy.org/" target="_blank"&gt;web.py&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img  title="tornado" src="http://feilong.me/wp-content/uploads/2011/01/tornado.png" width="286" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Tornado即是一个web server（对此本文不作详述），同时又是一个类web.py的micro-framework，作为框架Tornado的思想主要来源于web.py，大家在web.py的网站首页也可以看到Tornado的大佬&lt;a href="http://bret.appspot.com/" target="_blank"&gt;Bret Taylor&lt;/a&gt;的这么一段话（他这里说的FriendFeed用的框架跟Tornado可以看作是一个东西）：&lt;/p&gt;&#xD;
&lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt;&#xD;
&lt;p&gt;&amp;ldquo;[web.py inspired the] web framework we use at FriendFeed [and] the webapp framework that ships with App Engine&amp;hellip;&amp;rdquo;&lt;/p&gt;&#xD;
&lt;/blockquote&gt;&#xD;
&lt;p&gt;因为有这层关系，后面不再单独讨论Tornado。&lt;/p&gt;&#xD;
&lt;p&gt;web.py的设计理念力求精简（Keep it simple and powerful），总共就没多少行代码，也不像Pylons那样依赖大量的第三方模块，而是只提供的一个框架所必须的一些东西，如：URL路由、Template、数据库访问，其它的就交给用户自己去做好了。&lt;/p&gt;&#xD;
&lt;p&gt;一个框架精简的好处在于你可以聚焦在业务逻辑上，而不用太多的去关心框架本身或受框架的干扰，同时缺点也很明显，许多事情你得自己操刀上。&lt;br /&gt;我个人比较偏好这种精简的框架，因为你很容易通过阅读源码弄明白整个框架的工作机制，如果框架那一块不是很合意的话，我完全可以Monkey patch一下按自己的要求来。&lt;/p&gt;&#xD;
&lt;p&gt;早期的reddit是用web.py写的，Tornado的案例有&lt;a href="http://friendfeed.com/"&gt;friendfeed.com&lt;/a&gt;、&lt;a href="http://bit.ly/" target="_blank"&gt;bit.ly&lt;/a&gt;、&lt;a href="http://www.quora.com/" target="_blank"&gt;quora.com&lt;/a&gt;和我的开源站点&lt;a href="http://poweredsites.org/"&gt;poweredsites.org&lt;/a&gt;等。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;a href="http://bottle.paws.de/" target="_blank"&gt;Bottle&lt;/a&gt;&amp;nbsp;&amp;amp;&amp;nbsp;&lt;a href="http://flask.pocoo.org/" target="_blank"&gt;Flask&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img  title="bottle-logo" src="http://feilong.me/wp-content/uploads/2011/01/bottle-logo.png" width="276" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Bottle和Flask作为新生一代Python框架的代表，挺有意思的是都采用了decorator的方式配置URL路由，如：&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&#xD;
&lt;pre &gt;&lt;span&gt;from&lt;/span&gt; bottle &lt;span&gt;import&lt;/span&gt; route, run&#xD;
&amp;nbsp;&#xD;
@route&lt;span&gt;(&lt;/span&gt;&lt;span&gt;'/:name'&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&#xD;
&lt;span&gt;def&lt;/span&gt; index&lt;span&gt;(&lt;/span&gt;name=&lt;span&gt;'World'&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;:&#xD;
    &lt;span&gt;return&lt;/span&gt; &lt;span&gt;'&amp;amp;lt;b&amp;amp;gt;Hello %s!&amp;amp;lt;/b&amp;amp;gt;'&lt;/span&gt; &lt;span&gt;%&lt;/span&gt; name&#xD;
&amp;nbsp;&#xD;
run&lt;span&gt;(&lt;/span&gt;host=&lt;span&gt;'localhost'&lt;/span&gt;, port=&lt;span&gt;8080&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p lang="python"&gt;Bottle、Flask跟web.py一样，都非常精简，Bottle甚至所有的代码都在那一个两千来行的.py文件里。另外Flask和Pylons一样，可以跟Jinja2、SQLAlchemy之类结合的很好。&lt;/p&gt;&#xD;
&lt;p&gt;不过目前不管是Bottle还是Flask成功案例都还很少。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.quixote.ca/" target="_blank"&gt;Quixote&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;之所以要特别说一下Quixote，是因为国内的最大的用Python开发的网站&amp;ldquo;&lt;a href="http://www.douban.com/"&gt;豆瓣网&lt;/a&gt;&amp;rdquo;是用Quixote开发的。我只简单翻了一下源代码，没有做过研究，不发表评论，有经验的来补充下。我只是在想，如果豆瓣网交到现在来开发，应该会有更多的选择。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;其它（web2py、uliweb、Karrigell、Werkzeug &amp;hellip;）&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;欢迎大家补充&amp;hellip;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;最后关于框架选择的误区&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;在框架的选择问题上，许多人很容易就陷入了下面两个误区中而不自知：&lt;/p&gt;&#xD;
&lt;ol&gt;&#xD;
&lt;li&gt;哪个框架最好 － 世上没有最好的框架，只有最适合你自己、最适合你的团队的框架。编程语言选择也是一个道理，你的团队Python最熟就用Python好了，如果最熟悉的是Ruby那就用Ruby好了，编程语言、框架都只是工具，能多、快、好、省的干完活就是好东西，管TMD是日本鬼子还是美帝造呢！&lt;/li&gt;&#xD;
&lt;li&gt;过分关注性能 － 其实大部分人是没必要太关心框架的性能的，因为你开发的网站根本就是个小站，能上1万的IP的网站已经不多了，上10万的更是很少很少。在没有一定的访问量前谈性能其实是没有多大意义的，因为你的CPU和内存一直就闲着呢。而且语言和框架一般也不会是性能瓶颈，性能问题最常出现在数据库访问和文件读写上。PHP的Zend Framework是出了名的慢，但是Zend Framework一样有大站，如：digg.com；常被人说有性能问题的Ruby和Rails，不是照样可以开发出twitter吗？再者现在的硬件、带宽成本其实是很低的，特别有了云计算平台后，人力成本才是最贵的，没有上万的IP根本就不用太在意性能问题，流量上去了花点钱买点服务器空间好了，简单快速的解决性能问题。&lt;/li&gt;&#xD;
&lt;/ol&gt;&#xD;
&lt;p&gt;注：前面有网友质疑我&amp;ldquo;Quora是用Pylons开发的&amp;rdquo;这样的说法不客观，特说明一下，这里所说的某个网站A是用B开发的，只是指A主要或部分是由B开发的，大家就不要再去纠结A还用C了。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/zzyn/aggbug/2094847.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/zzyn/archive/2011/06/30/2094847.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/zzyn/archive/2011/06/30/2094812.html</id><title type="text">五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT) – 整理</title><summary type="text">当Adobe、Microsoft、Sun等一系列巨头开始表现出对”开源”的青睐时，”开源”的时代即将到来！最初来自：sinoprise.com/read.php?tid-662-page-e-fpage-1.html（遗憾的是这个链接已经打不开了），我基本未改动，只是进行了一些排版和整理。参考文献：http://www.fsf.org/licensing/licenses/现今存在的开源协议很多，而经过Open Source Initiative组织通过批准的开源协议目前有58种（http://www.opensource.org/licenses/alphabetical）。我们在常见的开源</summary><published>2011-06-30T08:51:00Z</published><updated>2011-06-30T08:51:00Z</updated><author><name>冷风旋</name><uri>http://www.cnblogs.com/zzyn/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zzyn/archive/2011/06/30/2094812.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zzyn/archive/2011/06/30/2094812.html"/><content type="html">&lt;p&gt;当Adobe、Microsoft、Sun等一系列巨头开始表现出对&amp;rdquo;开源&amp;rdquo;的青睐时，&amp;rdquo;开源&amp;rdquo;的时代即将到来！&lt;/p&gt;&#xD;
&lt;p&gt;最初来自：sinoprise.com/read.php?tid-662-page-e-fpage-1.html（遗憾的是这个链接已经打不开了），我基本未改动，只是进行了一些排版和整理。&lt;br /&gt;参考文献：&lt;a href="http://www.fsf.org/licensing/licenses/"&gt;http://www.fsf.org/licensing/licenses/&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;现今存在的开源协议很多，而经过Open Source Initiative组织通过批准的开源协议目前有58种（&lt;a href="http://www.opensource.org/licenses/alphabetical"&gt;http://www.opensource.org/licenses/alphabetical&lt;/a&gt;）。我们在常见的开源协议如BSD, GPL, LGPL,MIT等都是OSI批准的协议。如果要开源自己的代码，最好也是选择这些被批准的开源协议。&lt;/p&gt;&#xD;
&lt;p&gt;这里我们来看四种最常用的开源协议及它们的适用范围，供那些准备开源或者使用开源产品的开发人员/厂家参考。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;BSD开源协议（&lt;/strong&gt;&lt;a href="http://www.fsf.org/licensing/licenses/index_html#OriginalBSD"&gt;original BSD license&lt;/a&gt;&lt;strong&gt;、&lt;/strong&gt;&lt;a name="FreeBSD" id="FreeBSD" href="http://www.freebsd.org/copyright/freebsd-license.html"&gt;FreeBSD license&lt;/a&gt;&lt;strong&gt;、&lt;/strong&gt;&lt;a name="OriginalBSD" id="OriginalBSD" href="http://www.xfree86.org/3.3.6/COPYRIGHT2.html#6"&gt;Original BSD license&lt;/a&gt;&lt;strong&gt;）&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以&amp;rdquo;为所欲为&amp;rdquo;,可以自由的使用，修改源代码，也可以将修改后的代码作为开源或者专有软件再发布。&lt;/p&gt;&#xD;
&lt;p&gt;但&amp;rdquo;为所欲为&amp;rdquo;的前提当你发布使用了BSD协议的代码，或则以BSD协议代码为基础做二次开发自己的产品时，需要满足三个条件：&lt;/p&gt;&#xD;
&lt;ol&gt;&#xD;
&lt;li&gt;如果再发布的产品中包含源代码，则在源代码中必须带有原来代码中的BSD协议。&lt;/li&gt;&#xD;
&lt;li&gt;如果再发布的只是二进制类库/软件，则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。&lt;/li&gt;&#xD;
&lt;li&gt;不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。&lt;/li&gt;&#xD;
&lt;/ol&gt;&#xD;
&lt;p&gt;BSD 代码鼓励代码共享，但需要尊重代码作者的著作权。BSD由于允许使用者修改和重新发布代码，也允许使用或在BSD代码上开发商业软件发布和销售，因此是对商业集成很友好的协议。而很多的公司企业在选用开源产品的时候都首选BSD协议，因为可以完全控制这些第三方的代码，在必要的时候可以修改或者二次开发。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;Apache Licence 2.0（&lt;/strong&gt;&lt;a href="http://www.apache.org/licenses/LICENSE-2.0"&gt;Apache License, Version 2.0&lt;/a&gt;、&lt;a href="http://www.apache.org/LICENSE-1.1"&gt;Apache License, Version 1.1&lt;/a&gt;、&lt;a href="http://www.apache.org/LICENSE-1.0"&gt;Apache License, Version 1.0&lt;/a&gt;&lt;strong&gt;）&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Apache Licence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似，同样鼓励代码共享和尊重原作者的著作权，同样允许代码修改，再发布（作为开源或商业软件）。需要满足的条件也和BSD类似：&lt;/p&gt;&#xD;
&lt;ol&gt;&#xD;
&lt;li&gt;需要给代码的用户一份Apache Licence&lt;/li&gt;&#xD;
&lt;li&gt;如果你修改了代码，需要再被修改的文件中说明。&lt;/li&gt;&#xD;
&lt;li&gt;在延伸的代码中（修改和有源代码衍生的代码中）需要带有原来代码中的协议，商标，专利声明和其他原来作者规定需要包含的说明。&lt;/li&gt;&#xD;
&lt;li&gt;如果再发布的产品中包含一个Notice文件，则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可，但不可以表现为对Apache Licence构成更改。&lt;/li&gt;&#xD;
&lt;/ol&gt;&#xD;
&lt;p&gt;Apache Licence也是对商业应用友好的许可。使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;GPL（&lt;/strong&gt;&lt;a name="GNUGPL" id="GNUGPL" href="http://www.fsf.org/licensing/licenses/gpl.html"&gt;GNU General Public License&lt;/a&gt;&lt;strong&gt;）&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;我们很熟悉的Linux就是采用了GPL。GPL协议和BSD, Apache Licence等鼓励代码重用的许可很不一样。GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用，但不允许修改后和衍生的代码做为闭源的商业软件发布和销售。这也就是为什么我们能用免费的各种linux，包括商业公司的linux和linux上各种各样的由个人，组织，以及商业软件公司开发的免费软件了。&lt;/p&gt;&#xD;
&lt;p&gt;GPL协议的主要内容是只要在一个软件中使用(&amp;ldquo;使用&amp;rdquo;指类库引用，修改后的代码或者衍生代码)GPL 协议的产品，则该软件产品必须也采用GPL协议，既必须也是开源和免费。&lt;strong&gt;这就是所谓的&amp;rdquo;传染性&amp;rdquo;&lt;/strong&gt;。GPL协议的产品作为一个单独的产品使用没有任何问题，还可以享受免费的优势。&lt;/p&gt;&#xD;
&lt;p&gt;由于GPL严格要求使用了GPL类库的软件产品必须使用GPL协议，对于使用GPL协议的开源代码，商业软件或者对代码有保密要求的部门就不适合集成/采用作为类库和二次开发的基础。&lt;/p&gt;&#xD;
&lt;p&gt;其它细节如再发布的时候需要伴随GPL协议等和BSD/Apache等类似。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;LGPL（&lt;/strong&gt;&lt;a name="LGPL" id="LGPL" href="http://www.fsf.org/licensing/licenses/lgpl.html"&gt;GNU Lesser General Public License&lt;/a&gt;&lt;strong&gt;）&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;LGPL是GPL的一个为主要为类库使用设计的开源协议。和GPL要求任何使用/修改/衍生之GPL类库的的软件必须采用GPL协议不同。LGPL允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码。这使得采用LGPL协议的开源代码可以被商业软件作为类库引用并发布和销售。&lt;/p&gt;&#xD;
&lt;p&gt;但是如果修改LGPL协议的代码或者衍生，则所有修改的代码，涉及修改部分的额外代码和衍生的代码都必须采用LGPL协议。因此LGPL协议的开源代码很适合作为第三方类库被商业软件引用，但不适合希望以LGPL协议代码为基础，通过修改和衍生的方式做二次开发的商业软件采用。&lt;/p&gt;&#xD;
&lt;p&gt;GPL/LGPL都保障原作者的知识产权，避免有人利用开源代码复制并开发类似的产品&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;MIT（&lt;a href="http://www.opensource.org/licenses/mit-license.php"&gt;MIT&lt;/a&gt;）&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;MIT是和BSD一样宽范的许可协议,作者只想保留版权,而无任何其他了限制.也就是说,你必须在你的发行版里包含原许可协议的声明,无论你是以二进制发布的还是以源代码发布的.&lt;/p&gt;&lt;img src="http://www.cnblogs.com/zzyn/aggbug/2094812.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/zzyn/archive/2011/06/30/2094812.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/zzyn/archive/2011/04/18/2019862.html</id><title type="text">【转载】Connection strings for SQLite</title><summary type="text">SQLite.NETType:.NET Framework Class LibraryUsage: System.Data.SQLite.SQLiteConnectionManufacturer:SQLiteBasicData Source=filename;Version=3;Version 2 is not supported by this class library.Using UTF16Data Source=filename;Version=3;UseUTF16Encoding=True;With passwordData Source=filename;Version=3;Pas</summary><published>2011-04-18T06:53:00Z</published><updated>2011-04-18T06:53:00Z</updated><author><name>冷风旋</name><uri>http://www.cnblogs.com/zzyn/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zzyn/archive/2011/04/18/2019862.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zzyn/archive/2011/04/18/2019862.html"/><content type="html">&lt;div &gt;&lt;a id="p112"&gt;&lt;/a&gt;&amp;nbsp;&#xD;
&lt;div &gt;&#xD;
&lt;h2 &gt;SQLite.NET&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;b&gt;Type:&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.NET Framework Class Library&lt;br /&gt;&lt;b&gt;Usage:&lt;/b&gt;&amp;nbsp; System.Data.SQLite.SQLiteConnection&lt;/div&gt;&#xD;
&lt;div &gt;&lt;b&gt;Manufacturer:&lt;/b&gt;&amp;nbsp;&amp;nbsp;SQLite&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div &gt;&lt;span style="color: #0000ff;"&gt;&lt;em&gt;Basic&lt;/em&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div  id="p0cs0"&gt;&lt;span style="color: #ff00ff;"&gt;&lt;span &gt;Data Source&lt;/span&gt;=&lt;span &gt;filename;&lt;/span&gt;&lt;span &gt;Version&lt;/span&gt;=&lt;span &gt;3;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;span style="color: #ff9900;"&gt;Version 2 is not supported by this class library.&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div &gt;&lt;a href="javascript:ccstc(document.getElementById('p0cs0'));" &gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;span style="color: #0000ff;"&gt;&lt;em&gt;Using UTF16&lt;/em&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div  id="p0cs1"&gt;&lt;span style="color: #ff00ff;"&gt;&lt;span &gt;Data Source&lt;/span&gt;=&lt;span &gt;filename;&lt;/span&gt;&lt;span &gt;Version&lt;/span&gt;=&lt;span &gt;3;&lt;/span&gt;&lt;span &gt;UseUTF16Encoding&lt;/span&gt;=&lt;span &gt;True;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div &gt;&lt;a href="javascript:ccstc(document.getElementById('p0cs1'));" &gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;em&gt;&lt;span style="color: #0000ff;"&gt;With password&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&#xD;
&lt;div  id="p0cs2"&gt;&lt;span style="color: #ff00ff;"&gt;&lt;span &gt;Data Source&lt;/span&gt;=&lt;span &gt;filename;&lt;/span&gt;&lt;span &gt;Version&lt;/span&gt;=&lt;span &gt;3;&lt;/span&gt;&lt;span &gt;Password&lt;/span&gt;=&lt;span &gt;myPassword;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div &gt;&lt;a href="javascript:ccstc(document.getElementById('p0cs2'));" &gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&lt;em&gt;&lt;span style="color: #0000ff;"&gt;Using the pre 3.3x database format&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&#xD;
&lt;div  id="p0cs3"&gt;&lt;span style="color: #ff00ff;"&gt;&lt;span &gt;Data Source&lt;/span&gt;=&lt;span &gt;filename;&lt;/span&gt;&lt;span &gt;Version&lt;/span&gt;=&lt;span &gt;3;&lt;/span&gt;&lt;span &gt;Legacy Format&lt;/span&gt;=&lt;span &gt;True;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div &gt;&lt;a href="javascript:ccstc(document.getElementById('p0cs3'));" &gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&#xD;
&lt;div &gt;With connection pooling&lt;/div&gt;&#xD;
&lt;div &gt;Connection pooling is not enabled by default. Use the following parameters to control the connection pooling mechanism.&lt;/div&gt;&#xD;
&lt;div  id="p0cs4"&gt;&lt;span style="color: #ff00ff;"&gt;&lt;span &gt;Data Source&lt;/span&gt;=&lt;span &gt;filename;&lt;/span&gt;&lt;span &gt;Version&lt;/span&gt;=&lt;span &gt;3;&lt;/span&gt;&lt;span &gt;Pooling&lt;/span&gt;=&lt;span &gt;False;&lt;/span&gt;&lt;span &gt;Max Pool Size&lt;/span&gt;=&lt;span &gt;100;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div &gt;&lt;a href="javascript:ccstc(document.getElementById('p0cs4'));" &gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&#xD;
&lt;div &gt;Read only connection&lt;/div&gt;&#xD;
&lt;div  id="p0cs5"&gt;&lt;span style="color: #ff00ff;"&gt;&lt;span &gt;Data Source&lt;/span&gt;=&lt;span &gt;filename;&lt;/span&gt;&lt;span &gt;Version&lt;/span&gt;=&lt;span &gt;3;&lt;/span&gt;&lt;span &gt;Read Only&lt;/span&gt;=&lt;span &gt;True;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div &gt;&lt;a href="javascript:ccstc(document.getElementById('p0cs5'));" &gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&#xD;
&lt;div &gt;Using DateTime.Ticks as datetime format&lt;/div&gt;&#xD;
&lt;div  id="p0cs6"&gt;&lt;span style="color: #ff00ff;"&gt;&lt;span &gt;Data Source&lt;/span&gt;=&lt;span &gt;filename;&lt;/span&gt;&lt;span &gt;Version&lt;/span&gt;=&lt;span &gt;3;&lt;/span&gt;&lt;span &gt;DateTimeFormat&lt;/span&gt;=&lt;span &gt;Ticks;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;The default value is ISO8601 which activates the use of the ISO8601 datetime format&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div &gt;&lt;a href="javascript:ccstc(document.getElementById('p0cs6'));" &gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&#xD;
&lt;div &gt;Store GUID as text&lt;/div&gt;&#xD;
&lt;div &gt;Normally, GUIDs are stored in a binary format. Use this connection string to store GUIDs as text.&lt;/div&gt;&#xD;
&lt;div  id="p0cs7"&gt;&lt;span style="color: #ff00ff;"&gt;&lt;span &gt;Data Source&lt;/span&gt;=&lt;span &gt;filename;&lt;/span&gt;&lt;span &gt;Version&lt;/span&gt;=&lt;span &gt;3;&lt;/span&gt;&lt;span &gt;BinaryGUID&lt;/span&gt;=&lt;span &gt;False;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;Note that storing GUIDs as text uses more space in the database.&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div &gt;&lt;a href="javascript:ccstc(document.getElementById('p0cs7'));" &gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&#xD;
&lt;div &gt;Specify cache size&lt;/div&gt;&#xD;
&lt;div  id="p0cs8"&gt;&lt;span style="color: #ff00ff;"&gt;&lt;span &gt;Data Source&lt;/span&gt;=&lt;span &gt;filename;&lt;/span&gt;&lt;span &gt;Version&lt;/span&gt;=&lt;span &gt;3;&lt;/span&gt;&lt;span &gt;Cache Size&lt;/span&gt;=&lt;span &gt;2000;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;The Cache Size value measured in bytes&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div &gt;&lt;a href="javascript:ccstc(document.getElementById('p0cs8'));" &gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&#xD;
&lt;div &gt;Specify page size&lt;/div&gt;&#xD;
&lt;div  id="p0cs9"&gt;&lt;span style="color: #ff00ff;"&gt;&lt;span &gt;Data Source&lt;/span&gt;=&lt;span &gt;filename;&lt;/span&gt;&lt;span &gt;Version&lt;/span&gt;=&lt;span &gt;3;&lt;/span&gt;&lt;span &gt;Page Size&lt;/span&gt;=&lt;span &gt;1024;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;The Page Size value measured in bytes&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div &gt;&lt;a href="javascript:ccstc(document.getElementById('p0cs9'));" &gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&#xD;
&lt;div &gt;Disable enlistment in distributed transactions&lt;/div&gt;&#xD;
&lt;div  id="p0cs10"&gt;&lt;span style="color: #ff00ff;"&gt;&lt;span &gt;Data Source&lt;/span&gt;=&lt;span &gt;filename;&lt;/span&gt;&lt;span &gt;Version&lt;/span&gt;=&lt;span &gt;3;&lt;/span&gt;&lt;span &gt;Enlist&lt;/span&gt;=&lt;span &gt;N;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div &gt;&lt;a href="javascript:ccstc(document.getElementById('p0cs10'));" &gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&#xD;
&lt;div &gt;Disable enlistment in distributed transactions&lt;/div&gt;&#xD;
&lt;div  id="p0cs11"&gt;&lt;span style="color: #ff00ff;"&gt;&lt;span &gt;Data Source&lt;/span&gt;=&lt;span &gt;filename;&lt;/span&gt;&lt;span &gt;Version&lt;/span&gt;=&lt;span &gt;3;&lt;/span&gt;&lt;span &gt;Enlist&lt;/span&gt;=&lt;span &gt;N;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div &gt;&lt;a href="javascript:ccstc(document.getElementById('p0cs11'));" &gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&#xD;
&lt;div &gt;Disable create database behaviour&lt;/div&gt;&#xD;
&lt;div &gt;If the database file doesn't exist, the default behaviour is to create a new file. Use the following parameter to raise an error instead of creating a new database file.&lt;/div&gt;&#xD;
&lt;div  id="p0cs12"&gt;&lt;span style="color: #ff00ff;"&gt;&lt;span &gt;Data Source&lt;/span&gt;=&lt;span &gt;filename;&lt;/span&gt;&lt;span &gt;Version&lt;/span&gt;=&lt;span &gt;3;&lt;/span&gt;&lt;span &gt;FailIfMissing&lt;/span&gt;=&lt;span &gt;True;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div &gt;&lt;a href="javascript:ccstc(document.getElementById('p0cs12'));" &gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&#xD;
&lt;div &gt;Limit the size of database&lt;/div&gt;&#xD;
&lt;div  id="p0cs13"&gt;&lt;span style="color: #ff00ff;"&gt;&lt;span &gt;Data Source&lt;/span&gt;=&lt;span &gt;filename;&lt;/span&gt;&lt;span &gt;Version&lt;/span&gt;=&lt;span &gt;3;&lt;/span&gt;&lt;span &gt;Max Page Count&lt;/span&gt;=&lt;span &gt;5000;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;The Max Page Count is measured in pages. This parameter limits the maximum number of pages of the database.&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div &gt;&lt;a href="javascript:ccstc(document.getElementById('p0cs13'));" &gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&#xD;
&lt;div &gt;Disable the Journal File&lt;/div&gt;&#xD;
&lt;div &gt;This one disables the rollback journal entirely.&lt;/div&gt;&#xD;
&lt;div  id="p0cs14"&gt;&lt;span style="color: #ff00ff;"&gt;&lt;span &gt;Data Source&lt;/span&gt;=&lt;span &gt;filename;&lt;/span&gt;&lt;span &gt;Version&lt;/span&gt;=&lt;span &gt;3;&lt;/span&gt;&lt;span &gt;Journal Mode&lt;/span&gt;=&lt;span &gt;Off;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div &gt;&lt;a href="javascript:ccstc(document.getElementById('p0cs14'));" &gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&#xD;
&lt;div &gt;Persist the Journal File&lt;/div&gt;&#xD;
&lt;div &gt;This one blanks and leaves the journal file on disk after a commit. Default behaviour is to delete the Journal File after each commit.&lt;/div&gt;&#xD;
&lt;div  id="p0cs15"&gt;&lt;span style="color: #ff00ff;"&gt;&lt;span &gt;Data Source&lt;/span&gt;=&lt;span &gt;filename;&lt;/span&gt;&lt;span &gt;Version&lt;/span&gt;=&lt;span &gt;3;&lt;/span&gt;&lt;span &gt;Journal Mode&lt;/span&gt;=&lt;span &gt;Persist;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div &gt;&lt;a href="javascript:ccstc(document.getElementById('p0cs15'));" &gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&#xD;
&lt;div &gt;Controling file flushing&lt;/div&gt;&#xD;
&lt;div  id="p0cs16"&gt;&lt;span style="color: #ff00ff;"&gt;&lt;span &gt;Data Source&lt;/span&gt;=&lt;span &gt;filename;&lt;/span&gt;&lt;span &gt;Version&lt;/span&gt;=&lt;span &gt;3;&lt;/span&gt;&lt;span &gt;Synchronous&lt;/span&gt;=&lt;span &gt;Full;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;Full specifies a full flush to take action after each write. Normal is the default value. Off means that the underlying OS flushes I/O's.&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div &gt;&lt;a href="javascript:ccstc(document.getElementById('p0cs16'));" &gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&#xD;
&lt;a id="p92"&gt;&lt;/a&gt;&#xD;
&lt;div &gt;&#xD;
&lt;h2 &gt;Finisar.SQLite ADO.NET Data Provider&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;b&gt;Type:&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.NET Framework Class Library&lt;br /&gt;&lt;b&gt;Usage:&lt;/b&gt;&amp;nbsp; &lt;/div&gt;&#xD;
&lt;div &gt;&lt;b&gt;Manufacturer:&lt;/b&gt;&amp;nbsp;&amp;nbsp;Finisar.SQLite&lt;/div&gt;&#xD;
&lt;div &gt;Standard&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div  id="p1cs0"&gt;&lt;span style="color: #ff00ff;"&gt;&lt;span &gt;Data Source&lt;/span&gt;=&lt;span &gt;mydb.db;&lt;/span&gt;&lt;span &gt;Version&lt;/span&gt;=&lt;span &gt;3;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;The "Version" key can take value "2" for SQLite 2.x (default) or value "3" for SQLite 3.x&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div &gt;&lt;a href="javascript:ccstc(document.getElementById('p1cs0'));" &gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&#xD;
&lt;div &gt;Create a new database&lt;/div&gt;&#xD;
&lt;div  id="p1cs1"&gt;&lt;span style="color: #ff00ff;"&gt;&lt;span &gt;Data Source&lt;/span&gt;=&lt;span &gt;mydb.db;&lt;/span&gt;&lt;span &gt;Version&lt;/span&gt;=&lt;span &gt;3;&lt;/span&gt;&lt;span &gt;New&lt;/span&gt;=&lt;span &gt;True;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div &gt;&lt;a href="javascript:ccstc(document.getElementById('p1cs1'));" &gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&#xD;
&lt;div &gt;Using compression&lt;/div&gt;&#xD;
&lt;div  id="p1cs2"&gt;&lt;span style="color: #ff00ff;"&gt;&lt;span &gt;Data Source&lt;/span&gt;=&lt;span &gt;mydb.db;&lt;/span&gt;&lt;span &gt;Version&lt;/span&gt;=&lt;span &gt;3;&lt;/span&gt;&lt;span &gt;Compress&lt;/span&gt;=&lt;span &gt;True;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div &gt;&lt;a href="javascript:ccstc(document.getElementById('p1cs2'));" &gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&#xD;
&lt;div &gt;Specifying Cache Size&lt;/div&gt;&#xD;
&lt;div &gt;The Cache Size value represents the amount of data pages that are held in memory. Try increase this value for speed improvements but don't forget to keep track of the applications memory usage.&lt;/div&gt;&#xD;
&lt;div &gt;&lt;/div&gt;&#xD;
&lt;div  id="p1cs3"&gt;&lt;span style="color: #ff00ff;"&gt;&lt;span &gt;Data Source&lt;/span&gt;=&lt;span &gt;mydb.db;&lt;/span&gt;&lt;span &gt;Version&lt;/span&gt;=&lt;span &gt;3;&lt;/span&gt;&lt;span &gt;Cache Size&lt;/span&gt;=&lt;span &gt;3000;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div &gt;&lt;a href="javascript:ccstc(document.getElementById('p1cs3'));" &gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&#xD;
&lt;a id="p93"&gt;&lt;/a&gt;&#xD;
&lt;div &gt;&#xD;
&lt;h2 &gt;SQLite3 ODBC Driver&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;b&gt;Type:&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.NET Framework Class Library&lt;br /&gt;&lt;b&gt;Usage:&lt;/b&gt;&amp;nbsp; &lt;/div&gt;&#xD;
&lt;div &gt;&lt;b&gt;Manufacturer:&lt;/b&gt;&amp;nbsp;&amp;nbsp;SQLite&lt;/div&gt;&#xD;
&lt;div &gt;&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div &gt;Standard&lt;/div&gt;&#xD;
&lt;div  id="p2cs0"&gt;&lt;span style="color: #ff00ff;"&gt;&lt;span &gt;DRIVER&lt;/span&gt;=&lt;span &gt;SQLite3 ODBC Driver;&lt;/span&gt;&lt;span &gt;Database&lt;/span&gt;=&lt;span &gt;mydb.db;&lt;/span&gt;&lt;span &gt;LongNames&lt;/span&gt;=&lt;span &gt;0;&lt;/span&gt;&lt;span &gt;Timeout&lt;/span&gt;=&lt;span &gt;1000;&lt;/span&gt;&lt;span &gt;NoTXN&lt;/span&gt;=&lt;span &gt;0;&lt;/span&gt;&lt;span &gt;SyncPragma&lt;/span&gt;=&lt;span &gt;NORMAL;&lt;/span&gt;&lt;span &gt;StepAPI&lt;/span&gt;=&lt;span &gt;0;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div &gt;&lt;a href="javascript:ccstc(document.getElementById('p2cs0'));" &gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&#xD;
&lt;a id="p21"&gt;&lt;/a&gt;&#xD;
&lt;div &gt;&#xD;
&lt;h2 &gt;.NET Framework Data Provider for ODBC&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;div &gt;&lt;b&gt;Type:&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.NET Framework Wrapper Class Library&lt;br /&gt;&lt;b&gt;Usage:&lt;/b&gt;&amp;nbsp; System.Data.Odbc.OdbcConnection&lt;/div&gt;&#xD;
&lt;div &gt;&lt;b&gt;Manufacturer:&lt;/b&gt;&amp;nbsp;&amp;nbsp;Microsoft&lt;/div&gt;&#xD;
&lt;div &gt;Bridging to SQLite3 ODBC Driver&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div &gt;This is just one connection string sample for the wrapping OdbcConnection class that calls the underlying ODBC Driver. See respective ODBC driver for more connection strings to use with this class.&lt;/div&gt;&#xD;
&lt;div &gt;&lt;/div&gt;&#xD;
&lt;div  id="p3cs0"&gt;&lt;span style="color: #ff00ff;"&gt;&lt;span &gt;DRIVER&lt;/span&gt;=&lt;span &gt;SQLite3 ODBC Driver;&lt;/span&gt;&lt;span &gt;Database&lt;/span&gt;=&lt;span &gt;mydb.db;&lt;/span&gt;&lt;span &gt;LongNames&lt;/span&gt;=&lt;span &gt;0;&lt;/span&gt;&lt;span &gt;Timeout&lt;/span&gt;=&lt;span &gt;1000;&lt;/span&gt;&lt;span &gt;NoTXN&lt;/span&gt;=&lt;span &gt;0;&lt;/span&gt;&lt;span &gt;SyncPragma&lt;/span&gt;=&lt;span &gt;NORMAL;&lt;/span&gt;&lt;span &gt;StepAPI&lt;/span&gt;=&lt;span &gt;0;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;/div&gt;&lt;img src="http://www.cnblogs.com/zzyn/aggbug/2019862.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/zzyn/archive/2011/04/18/2019862.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/zzyn/archive/2011/04/12/2013421.html</id><title type="text">【原创】无法解决 equal to 运算中 &amp;quot;Chinese_PRC_CI_AS&amp;quot; 和 &amp;quot;SQL_Latin1_General_CP1_CI_AS&amp;quot; 之间的排序规则冲突。</title><summary type="text">不同数据库的表做join操作时由于不同的编码出现导致无法做equal处理究其原因是两个数据库的默认排序规则不同，只要修改其中一个数据的默认排序规则即可鼠标右击“数据库名称”的属性，弹出属性对话框1.先将访问限制调整为单用户使用2.应用后再将排序规则调整为期望的排序值3.最后再将访问限制调整回多用户访问</summary><published>2011-04-12T03:08:00Z</published><updated>2011-04-12T03:08:00Z</updated><author><name>冷风旋</name><uri>http://www.cnblogs.com/zzyn/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zzyn/archive/2011/04/12/2013421.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zzyn/archive/2011/04/12/2013421.html"/><content type="html">&lt;p&gt;不同数据库的表做join操作时由于不同的编码出现导致无法做equal处理&lt;/p&gt;&#xD;
&lt;p&gt;究其原因是两个数据库的默认排序规则不同，只要修改其中一个数据的默认排序规则即可&lt;/p&gt;&#xD;
&lt;p&gt;鼠标右击&amp;ldquo;数据库名称&amp;rdquo;的属性，弹出属性对话框&lt;/p&gt;&#xD;
&lt;p&gt;1.先将访问限制调整为单用户使用&lt;/p&gt;&#xD;
&lt;p&gt;2.应用后再将排序规则调整为期望的排序值&lt;/p&gt;&#xD;
&lt;p&gt;3.最后再将访问限制调整回多用户访问&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/20436/2011041211075317.png" /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/zzyn/aggbug/2013421.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/zzyn/archive/2011/04/12/2013421.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/zzyn/archive/2011/03/31/2000690.html</id><title type="text">【原创】近一年来面试中遇到的算法问题</title><summary type="text">1.遍历文件和文件夹2.类似如下1 2 3 5 8 13 21....求第N项3.求第N个素数4.冒泡排序5.aabbbccccddeefgggggg 统计字符串中连续相同字母的个数（bbb算一个）6.aabbbccccddeefbbgbbggg统计字符串某个字母连续相同字母的个数（bbb算一个）7.字符串反转8. 输入如下字符： 1 2 3 4 5 6 7 8 输出结果字符： 1 5 2 6 37 4 89.统计str1中出现str2出现的次数10.(KMP)随机插入100个不重复的数字11.判断2个链表是否有交点12.判断2个链表是否有环13.如果2个链表相较找到交点14.最短路径算法15</summary><published>2011-03-31T02:28:00Z</published><updated>2011-03-31T02:28:00Z</updated><author><name>冷风旋</name><uri>http://www.cnblogs.com/zzyn/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zzyn/archive/2011/03/31/2000690.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zzyn/archive/2011/03/31/2000690.html"/><content type="html">&lt;p&gt;1.遍历文件和文件夹&lt;/p&gt;&#xD;
&lt;p&gt;2.类似如下1 2 3 5 8 13 21....求第N项&lt;/p&gt;&#xD;
&lt;p&gt;3.求第N个素数&lt;/p&gt;&#xD;
&lt;p&gt;4.冒泡排序&lt;/p&gt;&#xD;
&lt;p&gt;5.aabbbccccddeefgggggg&amp;nbsp; 统计字符串中连续相同字母的个数（bbb算一个）&lt;/p&gt;&#xD;
&lt;p&gt;6.aabbbccccddeefbbgbbggg&amp;nbsp;统计字符串某个字母连续相同字母的个数（bbb算一个）&lt;/p&gt;&#xD;
&lt;p&gt;7.字符串反转&lt;/p&gt;&#xD;
&lt;p&gt;8.&amp;nbsp; 输入如下字符：&lt;/p&gt;&#xD;
&lt;p&gt;1&amp;nbsp; 2&amp;nbsp; 3&amp;nbsp; 4&lt;/p&gt;&#xD;
&lt;p&gt;5&amp;nbsp; 6&amp;nbsp; 7&amp;nbsp; 8&lt;/p&gt;&#xD;
&lt;p&gt;输出结果字符：&lt;/p&gt;&#xD;
&lt;p&gt;1&amp;nbsp; 5&lt;/p&gt;&#xD;
&lt;p&gt;2&amp;nbsp; 6&lt;/p&gt;&#xD;
&lt;p&gt;3&amp;nbsp;&amp;nbsp;7&lt;/p&gt;&#xD;
&lt;p&gt;4&amp;nbsp; 8&lt;/p&gt;&#xD;
&lt;p&gt;9.统计str1中出现str2出现的次数&lt;/p&gt;&#xD;
&lt;p&gt;10.(KMP)随机插入100个不重复的数字&lt;/p&gt;&#xD;
&lt;p&gt;11.判断2个链表是否有交点&lt;/p&gt;&#xD;
&lt;p&gt;12.判断2个链表是否有环&lt;/p&gt;&#xD;
&lt;p&gt;13.如果2个链表相较找到交点&lt;/p&gt;&#xD;
&lt;p&gt;14.最短路径算法&lt;/p&gt;&#xD;
&lt;p&gt;15有一个M x N的矩阵&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/20436/2011033110251283.jpg" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;上下左右方向相连接的算是一个block（红色部分）（斜着的不算）&lt;/p&gt;&#xD;
&lt;p&gt;统计矩阵中block的个数&lt;/p&gt;&lt;img src="http://www.cnblogs.com/zzyn/aggbug/2000690.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/zzyn/archive/2011/03/31/2000690.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/zzyn/archive/2010/09/21/1832252.html</id><title type="text">【原创】计算文本表达式</title><summary type="text">计算文本表达式Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--&amp;gt;#region 数学公式自动计算表达式 public struct MathChar { /// &amp;lt;summary&amp;gt; /// + /// &amp;lt;/summary&amp;gt; public static readonly char Add = &amp;#39;+&amp;#39;; /// &amp;lt;summary&amp;gt; /// - /// &amp;lt;/summary&amp;gt; public</summary><published>2010-09-21T01:04:00Z</published><updated>2010-09-21T01:04:00Z</updated><author><name>冷风旋</name><uri>http://www.cnblogs.com/zzyn/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zzyn/archive/2010/09/21/1832252.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zzyn/archive/2010/09/21/1832252.html"/><content type="html">&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('c9d2e91b-5428-48ef-a770-1642e199b38f')"&gt;&#xD;
&lt;div id="cnblogs_code_open_c9d2e91b-5428-48ef-a770-1642e199b38f"&gt;&#xD;
&lt;pre&gt;&lt;div&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;span style="color: #0000ff;"&gt;#region&lt;/span&gt;&lt;span style="color: #000000;"&gt;  数学公式自动计算表达式&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;struct&lt;/span&gt;&lt;span style="color: #000000;"&gt; MathChar&lt;br /&gt;    {&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; +&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;static&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;readonly&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; Add &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;+&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; -&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;static&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;readonly&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; Sub &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;-&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; *&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;static&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;readonly&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; Mul &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;*&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; /&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;static&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;readonly&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; Div &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; %&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;static&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;readonly&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; Mold &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;%&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; ^&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;static&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;readonly&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; Power &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;^&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; !&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;static&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;readonly&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; Neg &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;!&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; .&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;static&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;readonly&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; Spot &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;.&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; (&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;static&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;readonly&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; Left &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;(&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; )&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;static&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;readonly&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; Right &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;)&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; ' '&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;static&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;readonly&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; WhiteChar &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; Reverse Polish Notation&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 算术逆波兰表达式.生成.&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;param name="s"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;private&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; BuildingExpression(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; MathExpression)&lt;br /&gt;    {&lt;br /&gt;        StringBuilder ExpressionBuild &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; StringBuilder(MathExpression);&lt;br /&gt;        Stack ExpressionStack &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; Stack();&lt;br /&gt;        StringBuilder returnExpression &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; StringBuilder();&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; OneChar &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; MathChar.WhiteChar;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;sb.Replace(" ","");&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;一开始,我只去掉了空格.后来我不想不支持函数和常量能滤掉的全OUT掉.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; i &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;; i &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionBuild.Length; i&lt;/span&gt;&lt;span style="color: #000000;"&gt;++&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;        {&lt;br /&gt;            OneChar &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionBuild[i];&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;保存数字&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt;.IsDigit(OneChar))&lt;br /&gt;            {&lt;br /&gt;                returnExpression.Append(OneChar);&lt;br /&gt;            }&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;if(char.IsWhiteSpace(c)||char.IsLetter(c))&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;如果是空白,那么不要.现在字母也不要.&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;如果是其它字符...列出的要,没有列出的不要.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;switch&lt;/span&gt;&lt;span style="color: #000000;"&gt; (OneChar)&lt;br /&gt;            {&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;+&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;-&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;*&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;%&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;^&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;!&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;(&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;)&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;.&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;br /&gt;                    returnExpression.Append(OneChar);&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;break&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;default&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;continue&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        ExpressionBuild &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; StringBuilder(returnExpression.ToString());&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;#region&lt;/span&gt;&lt;span style="color: #000000;"&gt; 对负号进行预转义处理.负号变单目运算符求反.&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; i &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;; i &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionBuild.Length &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;; i&lt;/span&gt;&lt;span style="color: #000000;"&gt;++&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;        {&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (ExpressionBuild[i] &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;-&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt; (i &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;||&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionBuild[i &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;] &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt; MathChar.Left))&lt;br /&gt;            {&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;字符转义.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;                ExpressionBuild[i] &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;!&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;#endregion&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;#region&lt;/span&gt;&lt;span style="color: #000000;"&gt; 将中缀表达式变为后缀表达式.&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        returnExpression &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; System.Text.StringBuilder();&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; index &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;; index &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionBuild.Length; index&lt;/span&gt;&lt;span style="color: #000000;"&gt;++&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;        {&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;如果是数值.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt;.IsDigit(ExpressionBuild[index])&lt;br /&gt;             &lt;/span&gt;&lt;span style="color: #000000;"&gt;||&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionBuild[index] &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt; MathChar.Spot)&lt;br /&gt;            {&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;加入后缀式&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;                returnExpression.Append(ExpressionBuild[index]);&lt;br /&gt;            }&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (ExpressionBuild[index] &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt; MathChar.Add&lt;br /&gt;                  &lt;/span&gt;&lt;span style="color: #000000;"&gt;||&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionBuild[index] &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt; MathChar.Sub&lt;br /&gt;                  &lt;/span&gt;&lt;span style="color: #000000;"&gt;||&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionBuild[index] &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt; MathChar.Mul&lt;br /&gt;                  &lt;/span&gt;&lt;span style="color: #000000;"&gt;||&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionBuild[index] &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt; MathChar.Div&lt;br /&gt;                  &lt;/span&gt;&lt;span style="color: #000000;"&gt;||&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionBuild[index] &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt; MathChar.Mold&lt;br /&gt;                  &lt;/span&gt;&lt;span style="color: #000000;"&gt;||&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionBuild[index] &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt; MathChar.Power&lt;br /&gt;                  &lt;/span&gt;&lt;span style="color: #000000;"&gt;||&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionBuild[index] &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt; MathChar.Neg)&lt;br /&gt;            {&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;#region&lt;/span&gt;&lt;span style="color: #000000;"&gt; 运算符处理&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;栈不为空时 &lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;while&lt;/span&gt;&lt;span style="color: #000000;"&gt; (ExpressionStack.Count &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;                {&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;将栈中的操作符弹出.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;                    OneChar &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt;)ExpressionStack.Pop();&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;如果发现左括号.停.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (OneChar &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt; MathChar.Left)&lt;br /&gt;                    {&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;将弹出的左括号压回.因为还有右括号要和它匹配.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;                        ExpressionStack.Push(OneChar);&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;break&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                    }&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;如果不是左括号,那么将操作符加入后缀式中.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                    {&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;如果优先级比上次的高,则压栈.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;                        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (Priority(OneChar) &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; Priority(ExpressionBuild[index]))&lt;br /&gt;                        {&lt;br /&gt;                            ExpressionStack.Push(OneChar);&lt;br /&gt;                            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;break&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                        }&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                        {&lt;br /&gt;                            returnExpression.Append(MathChar.WhiteChar);&lt;br /&gt;                            returnExpression.Append(OneChar);&lt;br /&gt;                        }&lt;br /&gt;&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;把新操作符入栈.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;                ExpressionStack.Push(ExpressionBuild[index]);&lt;br /&gt;                returnExpression.Append(MathChar.WhiteChar);&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;#endregion&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            }&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;基本优先级提升&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (ExpressionBuild[index] &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt; MathChar.Left)&lt;br /&gt;            {&lt;br /&gt;                ExpressionStack.Push(MathChar.Left);&lt;br /&gt;                returnExpression.Append(MathChar.WhiteChar);&lt;br /&gt;            }&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;基本优先级下调&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (ExpressionBuild[index] &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt; MathChar.Right)&lt;br /&gt;            {&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;栈不为空时&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;while&lt;/span&gt;&lt;span style="color: #000000;"&gt; (ExpressionStack.Count &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;                {&lt;br /&gt;                    OneChar &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt;)ExpressionStack.Pop();&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (OneChar &lt;/span&gt;&lt;span style="color: #000000;"&gt;!=&lt;/span&gt;&lt;span style="color: #000000;"&gt; MathChar.Left)&lt;br /&gt;                    {&lt;br /&gt;                        returnExpression.Append(MathChar.WhiteChar);&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;加入空格主要是为了防止不相干的数据相临产生解析错误.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;                        returnExpression.Append(OneChar);&lt;br /&gt;                        returnExpression.Append(MathChar.WhiteChar);&lt;br /&gt;                    }&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                    {&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;break&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                    }&lt;br /&gt;&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            {&lt;br /&gt;                returnExpression.Append(ExpressionBuild[index]);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;while&lt;/span&gt;&lt;span style="color: #000000;"&gt; (ExpressionStack.Count &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;这是最后一个弹栈啦.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;        {&lt;br /&gt;            returnExpression.Append(MathChar.WhiteChar);&lt;br /&gt;            returnExpression.Append(ExpressionStack.Pop());&lt;br /&gt;        }&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;#endregion&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        returnExpression.Append(MathChar.WhiteChar);&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; FormatSpace(returnExpression.ToString());&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;在这里进行一次表达式格式化.这里就是后缀式了.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;    }&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 算术逆波兰表达式计算.&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;param name="s"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; ComputeExpression(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; MathExpression)&lt;br /&gt;    {&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; AfterExpression &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; BuildingExpression(MathExpression);&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; Temp &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Empty;&lt;br /&gt;        Stack ExpressionStack &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; Stack();&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; OneChar &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; MathChar.WhiteChar;&lt;br /&gt;        StringBuilder Operand &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; StringBuilder();&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;double&lt;/span&gt;&lt;span style="color: #000000;"&gt; x, y;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; i &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;; i &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; AfterExpression.Length; i&lt;/span&gt;&lt;span style="color: #000000;"&gt;++&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;        {&lt;br /&gt;            OneChar &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; AfterExpression[i];&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt;.IsDigit(OneChar)&lt;br /&gt;             &lt;/span&gt;&lt;span style="color: #000000;"&gt;||&lt;/span&gt;&lt;span style="color: #000000;"&gt; OneChar &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt; MathChar.Spot)&lt;br /&gt;            {&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;数据值收集.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;                Operand.Append(OneChar);&lt;br /&gt;            }&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (OneChar &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt; MathChar.WhiteChar&lt;br /&gt;                  &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt; Operand.Length &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;            {&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;#region&lt;/span&gt;&lt;span style="color: #000000;"&gt; 运算数转换&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;try&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                {&lt;br /&gt;                    Temp &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; Operand.ToString();&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;负数的转换一定要小心...它不被直接支持.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (Temp.StartsWith(MathChar.Sub.ToString()))&lt;br /&gt;                    {&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;现在我的算法里这个分支可能永远不会被执行.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;                        ExpressionStack.Push(&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;((&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;double&lt;/span&gt;&lt;span style="color: #000000;"&gt;)Convert.ToDouble(Temp.Substring(&lt;/span&gt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;, Temp.Length &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;))));&lt;br /&gt;                    }&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                    {&lt;br /&gt;                        ExpressionStack.Push(Convert.ToDouble(Temp));&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;catch&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                {&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;发现异常数据值.&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                }&lt;br /&gt;                Operand &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; StringBuilder();&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;#endregion&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            }&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;运算符处理.双目运算处理.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (OneChar &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt; MathChar.Add&lt;br /&gt;             &lt;/span&gt;&lt;span style="color: #000000;"&gt;||&lt;/span&gt;&lt;span style="color: #000000;"&gt; OneChar &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt; MathChar.Sub&lt;br /&gt;             &lt;/span&gt;&lt;span style="color: #000000;"&gt;||&lt;/span&gt;&lt;span style="color: #000000;"&gt; OneChar &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt; MathChar.Mul&lt;br /&gt;             &lt;/span&gt;&lt;span style="color: #000000;"&gt;||&lt;/span&gt;&lt;span style="color: #000000;"&gt; OneChar &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt; MathChar.Div&lt;br /&gt;             &lt;/span&gt;&lt;span style="color: #000000;"&gt;||&lt;/span&gt;&lt;span style="color: #000000;"&gt; OneChar &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt; MathChar.Mold&lt;br /&gt;             &lt;/span&gt;&lt;span style="color: #000000;"&gt;||&lt;/span&gt;&lt;span style="color: #000000;"&gt; OneChar &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt; MathChar.Power)&lt;br /&gt;            {&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;#region&lt;/span&gt;&lt;span style="color: #000000;"&gt; 双目运算&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (ExpressionStack.Count &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;/span&gt;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;如果输入的表达式根本没有包含运算符.或是根本就是空串.这里的逻辑就有意义了.&lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                {&lt;br /&gt;                    y &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;double&lt;/span&gt;&lt;span style="color: #000000;"&gt;)ExpressionStack.Pop();&lt;br /&gt;                }&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                {&lt;br /&gt;                    ExpressionStack.Push(&lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;break&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                }&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (ExpressionStack.Count &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;                    x &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;double&lt;/span&gt;&lt;span style="color: #000000;"&gt;)ExpressionStack.Pop();&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                {&lt;br /&gt;                    ExpressionStack.Push(y);&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;break&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                }&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;switch&lt;/span&gt;&lt;span style="color: #000000;"&gt; (OneChar)&lt;br /&gt;                {&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;+&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;br /&gt;                        ExpressionStack.Push(x &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; y);&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;break&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;-&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;br /&gt;                        ExpressionStack.Push(x &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; y);&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;break&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;*&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;br /&gt;                        ExpressionStack.Push(x &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; y);&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;break&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;br /&gt;                        ExpressionStack.Push(x &lt;/span&gt;&lt;span style="color: #000000;"&gt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt; y);&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;break&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;%&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;br /&gt;                        ExpressionStack.Push(x &lt;/span&gt;&lt;span style="color: #000000;"&gt;%&lt;/span&gt;&lt;span style="color: #000000;"&gt; y);&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;break&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;^&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;       if(x&amp;gt;0)&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;       {我原本还想,如果被计算的数是负数,又要开真分数次方时如何处理的问题.后来我想还是算了吧.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;                        ExpressionStack.Push(System.Math.Pow(x, y));&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;       }&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;       else&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;       {&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;        double t=y;&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;        string ts="";&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;        t=1/(2*t);&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;        ts=t.ToString();&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;        if(ts.ToUpper().LastIndexOf('E')&amp;gt;0)&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;        {&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;         ;&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;        }&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;       }&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;                        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;break&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                }&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;#endregion&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            }&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (OneChar &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt; MathChar.Neg)&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;单目取反.)&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;            {&lt;br /&gt;                ExpressionStack.Push(&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;((&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;double&lt;/span&gt;&lt;span style="color: #000000;"&gt;)ExpressionStack.Pop()));&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (ExpressionStack.Count &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;运算没有完成.&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (ExpressionStack.Count &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;结果丢失..&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; ExpressionStack.Pop().ToString();&lt;br /&gt;    }&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 计算表达式优先级别&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;param name="opr"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;private&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; Priority(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; opr)&lt;br /&gt;    {&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;switch&lt;/span&gt;&lt;span style="color: #000000;"&gt; (opr)&lt;br /&gt;        {&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;+&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;-&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;*&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;%&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;^&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;case&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;!&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;3&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;default&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 规范化逆波兰表达式. &lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;param name="str"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;private&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; FormatSpace(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; str)&lt;br /&gt;    {&lt;br /&gt;        StringBuilder returnValue &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; StringBuilder();&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; index &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;; index &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; str.Length; index&lt;/span&gt;&lt;span style="color: #000000;"&gt;++&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;        {&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #000000;"&gt;!&lt;/span&gt;&lt;span style="color: #000000;"&gt;(str.Length &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; index &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt; str[index] &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt; str[index &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;] &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;))&lt;br /&gt;                returnValue.Append(str[index]);&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                returnValue.Append(str[index]);&lt;br /&gt;        }&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; returnValue.ToString();&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 过滤数字和计算公式字符&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;param name="Expresssion"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;private&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;[] FilterNumberAndMathChar(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expresssion)&lt;br /&gt;    {&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; TempValue &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; Expresssion.Trim();&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (TempValue.Contains(MathChar.Add.ToString()))&lt;br /&gt;        {&lt;br /&gt;            TempValue &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; TempValue.Replace(MathChar.Add, MathChar.WhiteChar);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (TempValue.Contains(MathChar.Sub.ToString()))&lt;br /&gt;        {&lt;br /&gt;            TempValue &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; TempValue.Replace(MathChar.Sub, MathChar.WhiteChar);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (TempValue.Contains(MathChar.Mul.ToString()))&lt;br /&gt;        {&lt;br /&gt;            TempValue &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; TempValue.Replace(MathChar.Mul, MathChar.WhiteChar);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (TempValue.Contains(MathChar.Div.ToString()))&lt;br /&gt;        {&lt;br /&gt;            TempValue &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; TempValue.Replace(MathChar.Div, MathChar.WhiteChar);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (TempValue.Contains(MathChar.Neg.ToString()))&lt;br /&gt;        {&lt;br /&gt;            TempValue &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; TempValue.Replace(MathChar.Neg, MathChar.WhiteChar);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (TempValue.Contains(MathChar.Mold.ToString()))&lt;br /&gt;        {&lt;br /&gt;            TempValue &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; TempValue.Replace(MathChar.Mold, MathChar.WhiteChar);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (TempValue.Contains(MathChar.Power.ToString()))&lt;br /&gt;        {&lt;br /&gt;            TempValue &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; TempValue.Replace(MathChar.Power, MathChar.WhiteChar);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (TempValue.Contains(MathChar.Left.ToString()))&lt;br /&gt;        {&lt;br /&gt;            TempValue &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; TempValue.Replace(MathChar.Left, MathChar.WhiteChar);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (TempValue.Contains(MathChar.Right.ToString()))&lt;br /&gt;        {&lt;br /&gt;            TempValue &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; TempValue.Replace(MathChar.Right, MathChar.WhiteChar);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (TempValue.Contains(MathChar.Spot.ToString()))&lt;br /&gt;        {&lt;br /&gt;            TempValue &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; TempValue.Replace(MathChar.Spot, MathChar.WhiteChar);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; index &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;; index &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;10&lt;/span&gt;&lt;span style="color: #000000;"&gt;; index&lt;/span&gt;&lt;span style="color: #000000;"&gt;++&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;        {&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (TempValue.Contains(index.ToString()))&lt;br /&gt;            {&lt;br /&gt;                TempValue &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; TempValue.Replace(index.ToString(), MathChar.WhiteChar.ToString());&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;[] result &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; TempValue.Trim().Split(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;[] { MathChar.WhiteChar.ToString() }, StringSplitOptions.RemoveEmptyEntries);&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; result;&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;#endregion&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;/div&gt;&lt;img src="http://www.cnblogs.com/zzyn/aggbug/1832252.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/zzyn/archive/2010/09/21/1832252.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/zzyn/archive/2010/09/21/1832241.html</id><title type="text">【转载】Coolite的GridPanle导出Excel</title><summary type="text">代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--&amp;gt;public void ToExcel(Coolite.Ext.Web.GridPanel gp, string fileName, DataTable dt, HttpResponse resp) { resp.Clear(); resp.ContentEncoding = System.Text.Encoding.GetEncoding(&amp;quot;UTF-8&amp;quot;); resp.</summary><published>2010-09-21T00:55:00Z</published><updated>2010-09-21T00:55:00Z</updated><author><name>冷风旋</name><uri>http://www.cnblogs.com/zzyn/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zzyn/archive/2010/09/21/1832241.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zzyn/archive/2010/09/21/1832241.html"/><content type="html">&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('9b540b1d-9233-40b6-9366-406a8f647357')"&gt;&#xD;
&lt;div id="cnblogs_code_open_9b540b1d-9233-40b6-9366-406a8f647357"&gt;&#xD;
&lt;pre&gt;&lt;div&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt; ToExcel(Coolite.Ext.Web.GridPanel gp, &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; fileName, DataTable dt, HttpResponse resp)&lt;br /&gt;    {&lt;br /&gt;&lt;br /&gt;        resp.Clear();&lt;br /&gt;        resp.ContentEncoding &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; System.Text.Encoding.GetEncoding(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;UTF-8&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;        resp.AppendHeader(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Content-Disposition&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;attachment;filename=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; fileName &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;.xls&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;        resp.ContentType &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;application nd.ms-excel&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; colHeaders &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Empty;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; ls_item &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Empty;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; i &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; cl &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; gp.ColumnModel.Columns.Count;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; columns &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Empty;&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;输出表头&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;取得数据表各列标题，各标题之间以t分割，最后一个列标题后加回车符 &lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt; (i &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;; i &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; cl; i&lt;/span&gt;&lt;span style="color: #000000;"&gt;++&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;        {&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (i &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt; (cl &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;))&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;最后一列，加n&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;            {&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #000000;"&gt;!&lt;/span&gt;&lt;span style="color: #000000;"&gt;gp.ColumnModel.Columns[i].Hidden)&lt;br /&gt;                {&lt;br /&gt;                    colHeaders &lt;/span&gt;&lt;span style="color: #000000;"&gt;+=&lt;/span&gt;&lt;span style="color: #000000;"&gt; gp.ColumnModel.Columns[i].Header;&lt;br /&gt;                    columns &lt;/span&gt;&lt;span style="color: #000000;"&gt;+=&lt;/span&gt;&lt;span style="color: #000000;"&gt; gp.ColumnModel.Columns[i].DataIndex &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;,&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                }&lt;br /&gt;                colHeaders &lt;/span&gt;&lt;span style="color: #000000;"&gt;+=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;\n&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;            }&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            {&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #000000;"&gt;!&lt;/span&gt;&lt;span style="color: #000000;"&gt;gp.ColumnModel.Columns[i].Hidden &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt; gp.ColumnModel.Columns[i].ColumnID &lt;/span&gt;&lt;span style="color: #000000;"&gt;!=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;update&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;                {&lt;br /&gt;                    colHeaders &lt;/span&gt;&lt;span style="color: #000000;"&gt;+=&lt;/span&gt;&lt;span style="color: #000000;"&gt; gp.ColumnModel.Columns[i].Header &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;\t&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                    columns &lt;/span&gt;&lt;span style="color: #000000;"&gt;+=&lt;/span&gt;&lt;span style="color: #000000;"&gt; gp.ColumnModel.Columns[i].DataIndex &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;,&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        resp.Write(colHeaders);&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (columns &lt;/span&gt;&lt;span style="color: #000000;"&gt;!=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Empty) columns &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; columns.Substring(&lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;, columns.LastIndexOf(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;,&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;));&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;[] columnall &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; columns.Split(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt;[] { &lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;,&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt; }, StringSplitOptions.RemoveEmptyEntries);&lt;br /&gt;&lt;br /&gt;        cl &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; columnall.Length;&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;逐行处理数据   &lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; j &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;; j &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; dt.Rows.Count; j&lt;/span&gt;&lt;span style="color: #000000;"&gt;++&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;        {&lt;br /&gt;            ls_item &lt;/span&gt;&lt;span style="color: #000000;"&gt;+=&lt;/span&gt;&lt;span style="color: #000000;"&gt; (j &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;).ToString() &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;\t&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;No.列&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;当前行数据写入HTTP输出流，并且置空ls_item以便下行数据     &lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt; (i &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;; i &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; cl; i&lt;/span&gt;&lt;span style="color: #000000;"&gt;++&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;            {&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (i &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt; (cl &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;))&lt;br /&gt;                {&lt;br /&gt;                    ls_item &lt;/span&gt;&lt;span style="color: #000000;"&gt;+=&lt;/span&gt;&lt;span style="color: #000000;"&gt; EditString(dt.Rows[j][columnall[i].ToString()].ToString()) &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;\n&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                }&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                {&lt;br /&gt;                    ls_item &lt;/span&gt;&lt;span style="color: #000000;"&gt;+=&lt;/span&gt;&lt;span style="color: #000000;"&gt; EditString(dt.Rows[j][columnall[i].ToString()].ToString()) &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;\t&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            resp.Write(ls_item);&lt;br /&gt;            ls_item &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Empty;&lt;br /&gt;        }&lt;br /&gt;        Response.Flush();&lt;br /&gt;        resp.End();&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;private&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; EditString(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; TextString)&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;处理字符问题&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;    {&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (TextString.IndexOf(&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;\r&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;!=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;        {&lt;br /&gt;            TextString &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; TextString.Replace(&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;\r&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;        }&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (TextString.IndexOf(&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;\n&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;!=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;        {&lt;br /&gt;            TextString &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; TextString.Replace(&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;\n&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;        }&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (TextString.IndexOf(&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;\t&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;!=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;        {&lt;br /&gt;            TextString &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; TextString.Replace(&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;\t&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;        }&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (TextString.IndexOf(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;!=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;        {&lt;br /&gt;            TextString &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; TextString.Replace(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;'&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #800000;"&gt;""&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (TextString.IndexOf(&lt;/span&gt;&lt;span style="color: #800000;"&gt;@"&lt;/span&gt;&lt;span style="color: #800000;"&gt;""&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;!=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;        {&lt;br /&gt;            TextString &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; TextString.Replace(&lt;/span&gt;&lt;span style="color: #800000;"&gt;@"&lt;/span&gt;&lt;span style="color: #800000;"&gt;""&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #800000;"&gt;""&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;        }&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; TextString;&lt;br /&gt;    }&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;/div&gt;&lt;img src="http://www.cnblogs.com/zzyn/aggbug/1832241.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/zzyn/archive/2010/09/21/1832241.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/zzyn/archive/2010/09/21/1832237.html</id><title type="text">【原创】Coolite异步上传图片</title><summary type="text">异步上传图片Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--&amp;gt;Coolite.Ext.Web.FileUploadField uploadControl = ((Coolite.Ext.Web.FileUploadField)this.tbMain.FindControl(ControlsID.imageUpload)); //图片路径 string strFileName = uploadControl.FileName; DateTime </summary><published>2010-09-21T00:49:00Z</published><updated>2010-09-21T00:49:00Z</updated><author><name>冷风旋</name><uri>http://www.cnblogs.com/zzyn/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zzyn/archive/2010/09/21/1832237.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zzyn/archive/2010/09/21/1832237.html"/><content type="html">&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('cbd6c1af-4690-4f04-a4f1-c5205fb228f8')"&gt;&#xD;
&lt;div id="cnblogs_code_open_cbd6c1af-4690-4f04-a4f1-c5205fb228f8"&gt;&#xD;
&lt;pre&gt;&lt;div&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;span style="color: #000000;"&gt;Coolite.Ext.Web.FileUploadField uploadControl &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; ((Coolite.Ext.Web.FileUploadField)&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.tbMain.FindControl(ControlsID.imageUpload));&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;图片路径&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; strFileName &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; uploadControl.FileName;&lt;br /&gt;&lt;br /&gt;        DateTime Now &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; DateTime.Now;&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; FileName &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Parts&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; Now.ToString(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;yyyyMMddHHmmssffff&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; FilePath &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;~/UploadFile/ConstructImage/&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; FileName &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; System.IO.Path.GetExtension(strFileName);&lt;br /&gt;        &lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;try&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        {&lt;br /&gt;            System.Web.HttpFileCollection _files &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; System.Web.HttpContext.Current.Request.Files;&lt;br /&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt; (System.Int32 _iFile &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;; _iFile &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; _files.Count; _iFile&lt;/span&gt;&lt;span style="color: #000000;"&gt;++&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;            {&lt;br /&gt;                System.Web.HttpPostedFile _postedFile &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; _files[_iFile];&lt;br /&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #000000;"&gt;!&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;.IsNullOrEmpty(FilePath))&lt;br /&gt;                {&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (System.IO.File.Exists(System.Web.HttpContext.Current.Request.MapPath(FilePath)))&lt;br /&gt;                    {&lt;br /&gt;                        File.Delete(System.Web.HttpContext.Current.Request.MapPath(FilePath));&lt;br /&gt;                    }&lt;br /&gt;                    _postedFile.SaveAs(System.Web.HttpContext.Current.Request.MapPath(FilePath));&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;catch&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        {&lt;br /&gt;&lt;br /&gt;            Coolite.Ext.Web.MessageBox.Config configError &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; Coolite.Ext.Web.MessageBox.Config();&lt;br /&gt;            configError.Title &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;上传状态&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;            configError.Message &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;文件上传有错误,请检查!&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;            configError.Buttons &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; Coolite.Ext.Web.MessageBox.Button.OK;&lt;br /&gt;            configError.Icon &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; Coolite.Ext.Web.MessageBox.Icon.ERROR;&lt;br /&gt;            Coolite.Ext.Web.Ext.Msg.Show(configError);&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        Coolite.Ext.Web.Image uploadImage &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; ((Coolite.Ext.Web.Image)&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.tbMain.FindControl(ControlsID.uploadImage));&lt;br /&gt;        uploadImage.ImageUrl &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; FilePath;&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.ImageUrl &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;@"&lt;/span&gt;&lt;span style="color: #800000;"&gt;http://&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; Request.Url.Host &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;:&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; Request.Url.Port.ToString() &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; Request.ApplicationPath &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; FilePath.Replace(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;~&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Empty);&lt;br /&gt;&lt;br /&gt;        Session.Add(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;imageUrl&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, ImageUrl.ToString());&lt;br /&gt;&lt;br /&gt;        Coolite.Ext.Web.MessageBox.Config config &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; Coolite.Ext.Web.MessageBox.Config();&lt;br /&gt;        config.Title &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;上传状态&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;        config.Message &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;上传成功&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;        config.Buttons &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; Coolite.Ext.Web.MessageBox.Button.OK;&lt;br /&gt;        config.Icon &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; Coolite.Ext.Web.MessageBox.Icon.INFO;&lt;br /&gt;&lt;br /&gt;        Coolite.Ext.Web.Ext.Msg.Show(config);&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;/div&gt;&lt;img src="http://www.cnblogs.com/zzyn/aggbug/1832237.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/zzyn/archive/2010/09/21/1832237.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
