<?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/10675/rss</id><updated>2011-11-30T09:11:42Z</updated><author><name>山伟</name><uri>http://www.cnblogs.com/srw962/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/srw962/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/10675/rss"/><entry><id>http://www.cnblogs.com/srw962/archive/2011/09/30/2196634.html</id><title type="text">Gtk#创建图形时钟</title><summary type="text">学习新的图形库时有个习惯，就是将罗云彬先生的一个闹钟小程序移植到这个图形库下。原理也很简单，就是通过图片以第一个点的颜色为透明色创建窗体，但Gtk#创建就有些费劲了，主要是因为Gtk#的原生库Gtk+为C写的，有很多指针操作，在C#下有些麻烦，查了好多资料才写了下面几句代码。然后用Cairo绘制时钟的时间，也是一张图片，然后按时、分、秒截取图形的一部分绘制到不透明窗体上。 在Windows 7、Ubunu 11.04下运行，效果相同。见代码：1usingSystem;2usingSystem.Collections.Generic;3usingSystem.Linq;4usingSystem.</summary><published>2011-09-30T08:00:00Z</published><updated>2011-09-30T08:00:00Z</updated><author><name>山伟</name><uri>http://www.cnblogs.com/srw962/</uri></author><link rel="alternate" href="http://www.cnblogs.com/srw962/archive/2011/09/30/2196634.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/srw962/archive/2011/09/30/2196634.html"/><content type="html">&lt;p&gt;学习新的图形库时有个习惯，就是将罗云彬先生的一个闹钟小程序移植到这个图形库下。&lt;/p&gt;&lt;p&gt;原理也很简单，就是通过图片以第一个点的颜色为透明色创建窗体，但Gtk#创建就有些费劲了，主要是因为Gtk#的原生库Gtk+为C写的，有很多指针操作，在C#下有些麻烦，查了好多资料才写了下面几句代码。&lt;/p&gt;&lt;p&gt;然后用Cairo绘制时钟的时间，也是一张图片，然后按时、分、秒截取图形的一部分绘制到不透明窗体上。 &lt;br /&gt;&lt;/p&gt;&lt;p&gt;在Windows 7、Ubunu 11.04下运行，效果相同。&lt;/p&gt;&lt;p&gt;见代码：&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;&amp;nbsp;1&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;using&lt;/span&gt;&amp;nbsp;System;&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;&amp;nbsp;2&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;using&lt;/span&gt;&amp;nbsp;System.Collections.Generic;&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;&amp;nbsp;3&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;using&lt;/span&gt;&amp;nbsp;System.Linq;&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;&amp;nbsp;4&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;using&lt;/span&gt;&amp;nbsp;System.Text;&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;&amp;nbsp;5&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;using&lt;/span&gt;&amp;nbsp;Cairo;&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;&amp;nbsp;6&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;using&lt;/span&gt;&amp;nbsp;Gdk;&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;&amp;nbsp;7&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;using&lt;/span&gt;&amp;nbsp;Gtk;&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;&amp;nbsp;8&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;using&lt;/span&gt;&amp;nbsp;Window&amp;nbsp;=&amp;nbsp;Gtk.Window;&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;&amp;nbsp;9&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;using&lt;/span&gt;&amp;nbsp;WindowType&amp;nbsp;=&amp;nbsp;Gtk.WindowType;&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;10&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;11&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;namespace&lt;/span&gt;&amp;nbsp;GClock&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;12&lt;/span&gt;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;13&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;class&lt;/span&gt;&amp;nbsp;MainWindow&amp;nbsp;:&amp;nbsp;Window&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;14&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;15&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;bool&lt;/span&gt;&amp;nbsp;timer&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;true&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;16&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;readonly&lt;/span&gt;&amp;nbsp;Pixbuf&amp;nbsp;_pixbufNumber;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;时钟时间图片，为0-9十个数字和:以及空白部分组成&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;17&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;18&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;public&lt;/span&gt;&amp;nbsp;MainWindow()&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;19&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;&lt;span style="color: #0000FF;"&gt;base&lt;/span&gt;(WindowType.Toplevel)&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;20&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;21&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_pixbufNumber&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;Pixbuf(GetType().Assembly,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;GClock.Bmp.Number06.bmp&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;22&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;23&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;从嵌入资源中获取Pixbuf&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;24&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;pixbufO&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;Pixbuf(GetType().Assembly,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;GClock.Bmp.Clock03.bmp&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;25&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;取Pixbuf第一个点的rgb值&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;26&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;byte&lt;/span&gt;&amp;nbsp;r,&amp;nbsp;g,&amp;nbsp;b;&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;27&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;unsafe&lt;/span&gt;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;28&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Pixbuf的Pixels未记录图片每个点信息值&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;29&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;取(x,y)的rgb值，以下代码中x,y均为0&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;30&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;var&amp;nbsp;p&amp;nbsp;=&amp;nbsp;(byte*)pixbufO.Pixels.ToPointer()&amp;nbsp;+&amp;nbsp;y&amp;nbsp;*&amp;nbsp;pixbufO.Rowstride&amp;nbsp;+&amp;nbsp;x&amp;nbsp;*&amp;nbsp;pixbufO.NChannels;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;31&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;p&amp;nbsp;=&amp;nbsp;pixbufO.Pixels.ToPointer();&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;32&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;r&amp;nbsp;=&amp;nbsp;*(&lt;span style="color: #0000FF;"&gt;byte&lt;/span&gt;*)p;&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;33&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;g&amp;nbsp;=&amp;nbsp;*((&lt;span style="color: #0000FF;"&gt;byte&lt;/span&gt;*)p&amp;nbsp;+&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;34&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;b&amp;nbsp;=&amp;nbsp;*((&lt;span style="color: #0000FF;"&gt;byte&lt;/span&gt;*)p&amp;nbsp;+&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;35&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;36&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;依据第一个点的rgb值增加透明通道&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;37&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;pixbuf&amp;nbsp;=&amp;nbsp;pixbufO.AddAlpha(&lt;span style="color: #0000FF;"&gt;true&lt;/span&gt;,&amp;nbsp;r,&amp;nbsp;g,&amp;nbsp;b);&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;38&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;39&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Decorated&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;false&lt;/span&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;不设置窗体边框&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;40&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AppPaintable&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;true&lt;/span&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;应用程序绘制界面&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;41&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SetDefaultIconFromFile(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Clock00.ico&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;42&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;SetDefaultSize(pixbuf.Width,&amp;nbsp;pixbuf.Height);&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;43&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SetDefaultSize(&lt;span style="color: #800080;"&gt;500&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;500&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;44&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SetPosition(WindowPosition.Center);&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;45&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;46&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Realize();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;创建Window的资源，若不调用则this.GdkWindow为null&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;47&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;48&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DeleteEvent&amp;nbsp;+=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;delegate&lt;/span&gt;&amp;nbsp;{&amp;nbsp;Application.Quit();&amp;nbsp;};&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;49&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;添加鼠标点击事件&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;50&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AddEvents((&lt;span style="color: #0000FF;"&gt;int&lt;/span&gt;)EventMask.ButtonPressMask);&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;51&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;GLib.Timeout.Add(&lt;span style="color: #800080;"&gt;100&lt;/span&gt;,&amp;nbsp;OnTimer);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;时间事件&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;52&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;53&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Pixmap&amp;nbsp;pixmap,&amp;nbsp;pixmask;&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;54&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;依据Pixbuf创建Pixmap以及对应的蒙板Pixmap&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;55&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pixbuf.RenderPixmapAndMask(&lt;span style="color: #0000FF;"&gt;out&lt;/span&gt;&amp;nbsp;pixmap,&amp;nbsp;&lt;span style="color: #0000FF;"&gt;out&lt;/span&gt;&amp;nbsp;pixmask,&amp;nbsp;&lt;span style="color: #800080;"&gt;128&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;56&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ShapeCombineMask(pixmask,&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;57&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;GdkWindow.SetBackPixmap(pixmap,&amp;nbsp;&lt;span style="color: #0000FF;"&gt;false&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;58&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;59&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ShowAll();&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;60&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;61&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;62&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;protected&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;override&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;bool&lt;/span&gt;&amp;nbsp;OnButtonPressEvent(EventButton&amp;nbsp;evnt)&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;63&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;64&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;鼠标左键点击移动窗体&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;65&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&amp;nbsp;(evnt.Type&amp;nbsp;==&amp;nbsp;EventType.ButtonPress&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;evnt.Button&amp;nbsp;==&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;)&amp;nbsp;{&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;66&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BeginMoveDrag((&lt;span style="color: #0000FF;"&gt;int&lt;/span&gt;)evnt.Button,&amp;nbsp;(&lt;span style="color: #0000FF;"&gt;int&lt;/span&gt;)evnt.XRoot,&amp;nbsp;(&lt;span style="color: #0000FF;"&gt;int&lt;/span&gt;)evnt.YRoot,&amp;nbsp;evnt.Time);&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;67&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;68&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;base&lt;/span&gt;.OnButtonPressEvent(evnt);&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;69&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;70&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;71&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;protected&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;override&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;bool&lt;/span&gt;&amp;nbsp;OnExposeEvent(EventExpose&amp;nbsp;evnt)&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;72&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;73&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;base&lt;/span&gt;.OnExposeEvent(evnt);&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;74&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;75&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;using&lt;/span&gt;&amp;nbsp;(var&amp;nbsp;cr&amp;nbsp;=&amp;nbsp;CairoHelper.Create(evnt.Window))&amp;nbsp;{&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;76&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;curTime&amp;nbsp;=&amp;nbsp;DateTime.Now;&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;77&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;int&lt;/span&gt;&amp;nbsp;tenDigit,&amp;nbsp;entriesDigit;&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;78&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;79&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;x&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080;"&gt;25&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;80&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;const&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;int&lt;/span&gt;&amp;nbsp;y&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080;"&gt;80&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;81&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Save();&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;82&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;绘制左侧空白&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;83&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Translate(x,&amp;nbsp;y);&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;84&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CairoHelper.SetSourcePixbuf(cr,&amp;nbsp;_pixbufNumber,&amp;nbsp;-(&lt;span style="color: #800080;"&gt;15&lt;/span&gt;&amp;nbsp;*&amp;nbsp;&lt;span style="color: #800080;"&gt;10&lt;/span&gt;&amp;nbsp;+&amp;nbsp;&lt;span style="color: #800080;"&gt;8&lt;/span&gt;),&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;85&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Rectangle(&lt;span style="color: #800080;"&gt;0&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;25&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;86&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Clip();&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;87&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Paint();&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;88&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;89&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;90&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;HH&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;91&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DecToBcd(curTime.Hour,&amp;nbsp;&lt;span style="color: #0000FF;"&gt;out&lt;/span&gt;&amp;nbsp;tenDigit,&amp;nbsp;&lt;span style="color: #0000FF;"&gt;out&lt;/span&gt;&amp;nbsp;entriesDigit);&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;92&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;x&amp;nbsp;+=&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;93&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Restore();&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;94&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Save();&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;95&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Translate(x,&amp;nbsp;y);&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;96&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CairoHelper.SetSourcePixbuf(cr,&amp;nbsp;_pixbufNumber,&amp;nbsp;-&lt;span style="color: #800080;"&gt;15&lt;/span&gt;&amp;nbsp;*&amp;nbsp;tenDigit,&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;97&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Rectangle(&lt;span style="color: #800080;"&gt;0&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;15&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;25&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;98&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Clip();&lt;br /&gt;&lt;span style="color: #008080;"&gt;&amp;nbsp;99&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Paint();&lt;br /&gt;&lt;span style="color: #008080;"&gt;100&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #008080;"&gt;101&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;x&amp;nbsp;+=&amp;nbsp;&lt;span style="color: #800080;"&gt;15&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #008080;"&gt;102&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Restore();&lt;br /&gt;&lt;span style="color: #008080;"&gt;103&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Save();&lt;br /&gt;&lt;span style="color: #008080;"&gt;104&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Translate(x,&amp;nbsp;y);&lt;br /&gt;&lt;span style="color: #008080;"&gt;105&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CairoHelper.SetSourcePixbuf(cr,&amp;nbsp;_pixbufNumber,&amp;nbsp;-&lt;span style="color: #800080;"&gt;15&lt;/span&gt;&amp;nbsp;*&amp;nbsp;entriesDigit,&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: #008080;"&gt;106&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Rectangle(&lt;span style="color: #800080;"&gt;0&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;15&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;25&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: #008080;"&gt;107&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Clip();&lt;br /&gt;&lt;span style="color: #008080;"&gt;108&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Paint();&lt;br /&gt;&lt;span style="color: #008080;"&gt;109&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #008080;"&gt;110&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;111&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;x&amp;nbsp;+=&amp;nbsp;&lt;span style="color: #800080;"&gt;15&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #008080;"&gt;112&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Restore();&lt;br /&gt;&lt;span style="color: #008080;"&gt;113&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Save();&lt;br /&gt;&lt;span style="color: #008080;"&gt;114&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Translate(x,&amp;nbsp;y);&lt;br /&gt;&lt;span style="color: #008080;"&gt;115&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CairoHelper.SetSourcePixbuf(cr,&amp;nbsp;_pixbufNumber,&amp;nbsp;-&lt;span style="color: #800080;"&gt;15&lt;/span&gt;&amp;nbsp;*&amp;nbsp;&lt;span style="color: #800080;"&gt;10&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: #008080;"&gt;116&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Rectangle(&lt;span style="color: #800080;"&gt;0&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;8&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;25&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: #008080;"&gt;117&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Clip();&lt;br /&gt;&lt;span style="color: #008080;"&gt;118&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Paint();&lt;br /&gt;&lt;span style="color: #008080;"&gt;119&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #008080;"&gt;120&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;MM&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;121&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DecToBcd(curTime.Minute,&amp;nbsp;&lt;span style="color: #0000FF;"&gt;out&lt;/span&gt;&amp;nbsp;tenDigit,&amp;nbsp;&lt;span style="color: #0000FF;"&gt;out&lt;/span&gt;&amp;nbsp;entriesDigit);&lt;br /&gt;&lt;span style="color: #008080;"&gt;122&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;x&amp;nbsp;+=&amp;nbsp;&lt;span style="color: #800080;"&gt;8&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #008080;"&gt;123&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Restore();&lt;br /&gt;&lt;span style="color: #008080;"&gt;124&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Save();&lt;br /&gt;&lt;span style="color: #008080;"&gt;125&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Translate(x,&amp;nbsp;y);&lt;br /&gt;&lt;span style="color: #008080;"&gt;126&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CairoHelper.SetSourcePixbuf(cr,&amp;nbsp;_pixbufNumber,&amp;nbsp;-&lt;span style="color: #800080;"&gt;15&lt;/span&gt;&amp;nbsp;*&amp;nbsp;tenDigit,&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: #008080;"&gt;127&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Rectangle(&lt;span style="color: #800080;"&gt;0&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;15&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;25&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: #008080;"&gt;128&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Clip();&lt;br /&gt;&lt;span style="color: #008080;"&gt;129&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Paint();&lt;br /&gt;&lt;span style="color: #008080;"&gt;130&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #008080;"&gt;131&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;x&amp;nbsp;+=&amp;nbsp;&lt;span style="color: #800080;"&gt;15&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #008080;"&gt;132&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Restore();&lt;br /&gt;&lt;span style="color: #008080;"&gt;133&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Save();&lt;br /&gt;&lt;span style="color: #008080;"&gt;134&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Translate(x,&amp;nbsp;y);&lt;br /&gt;&lt;span style="color: #008080;"&gt;135&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CairoHelper.SetSourcePixbuf(cr,&amp;nbsp;_pixbufNumber,&amp;nbsp;-&lt;span style="color: #800080;"&gt;15&lt;/span&gt;&amp;nbsp;*&amp;nbsp;entriesDigit,&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: #008080;"&gt;136&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Rectangle(&lt;span style="color: #800080;"&gt;0&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;15&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;25&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: #008080;"&gt;137&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Clip();&lt;br /&gt;&lt;span style="color: #008080;"&gt;138&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Paint();&lt;br /&gt;&lt;span style="color: #008080;"&gt;139&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #008080;"&gt;140&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;141&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;x&amp;nbsp;+=&amp;nbsp;&lt;span style="color: #800080;"&gt;15&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #008080;"&gt;142&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Restore();&lt;br /&gt;&lt;span style="color: #008080;"&gt;143&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Save();&lt;br /&gt;&lt;span style="color: #008080;"&gt;144&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Translate(x,&amp;nbsp;y);&lt;br /&gt;&lt;span style="color: #008080;"&gt;145&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CairoHelper.SetSourcePixbuf(cr,&amp;nbsp;_pixbufNumber,&amp;nbsp;-&lt;span style="color: #800080;"&gt;15&lt;/span&gt;&amp;nbsp;*&amp;nbsp;&lt;span style="color: #800080;"&gt;10&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: #008080;"&gt;146&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Rectangle(&lt;span style="color: #800080;"&gt;0&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;8&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;25&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: #008080;"&gt;147&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Clip();&lt;br /&gt;&lt;span style="color: #008080;"&gt;148&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Paint();&lt;br /&gt;&lt;span style="color: #008080;"&gt;149&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #008080;"&gt;150&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;SS&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;151&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DecToBcd(curTime.Second,&amp;nbsp;&lt;span style="color: #0000FF;"&gt;out&lt;/span&gt;&amp;nbsp;tenDigit,&amp;nbsp;&lt;span style="color: #0000FF;"&gt;out&lt;/span&gt;&amp;nbsp;entriesDigit);&lt;br /&gt;&lt;span style="color: #008080;"&gt;152&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;x&amp;nbsp;+=&amp;nbsp;&lt;span style="color: #800080;"&gt;8&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #008080;"&gt;153&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Restore();&lt;br /&gt;&lt;span style="color: #008080;"&gt;154&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Save();&lt;br /&gt;&lt;span style="color: #008080;"&gt;155&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Translate(x,&amp;nbsp;y);&lt;br /&gt;&lt;span style="color: #008080;"&gt;156&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CairoHelper.SetSourcePixbuf(cr,&amp;nbsp;_pixbufNumber,&amp;nbsp;-&lt;span style="color: #800080;"&gt;15&lt;/span&gt;&amp;nbsp;*&amp;nbsp;tenDigit,&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: #008080;"&gt;157&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Rectangle(&lt;span style="color: #800080;"&gt;0&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;15&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;25&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: #008080;"&gt;158&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Clip();&lt;br /&gt;&lt;span style="color: #008080;"&gt;159&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Paint();&lt;br /&gt;&lt;span style="color: #008080;"&gt;160&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #008080;"&gt;161&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;x&amp;nbsp;+=&amp;nbsp;&lt;span style="color: #800080;"&gt;15&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #008080;"&gt;162&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Restore();&lt;br /&gt;&lt;span style="color: #008080;"&gt;163&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Save();&lt;br /&gt;&lt;span style="color: #008080;"&gt;164&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Translate(x,&amp;nbsp;y);&lt;br /&gt;&lt;span style="color: #008080;"&gt;165&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CairoHelper.SetSourcePixbuf(cr,&amp;nbsp;_pixbufNumber,&amp;nbsp;-&lt;span style="color: #800080;"&gt;15&lt;/span&gt;&amp;nbsp;*&amp;nbsp;entriesDigit,&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: #008080;"&gt;166&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Rectangle(&lt;span style="color: #800080;"&gt;0&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;15&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;25&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: #008080;"&gt;167&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Clip();&lt;br /&gt;&lt;span style="color: #008080;"&gt;168&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Paint();&lt;br /&gt;&lt;span style="color: #008080;"&gt;169&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #008080;"&gt;170&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;绘制右侧空白&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;171&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;x&amp;nbsp;+=&amp;nbsp;&lt;span style="color: #800080;"&gt;15&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #008080;"&gt;172&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Restore();&lt;br /&gt;&lt;span style="color: #008080;"&gt;173&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Save();&lt;br /&gt;&lt;span style="color: #008080;"&gt;174&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Translate(x,&amp;nbsp;y);&lt;br /&gt;&lt;span style="color: #008080;"&gt;175&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CairoHelper.SetSourcePixbuf(cr,&amp;nbsp;_pixbufNumber,&amp;nbsp;-(&lt;span style="color: #800080;"&gt;15&lt;/span&gt;&amp;nbsp;*&amp;nbsp;&lt;span style="color: #800080;"&gt;10&lt;/span&gt;&amp;nbsp;+&amp;nbsp;&lt;span style="color: #800080;"&gt;8&lt;/span&gt;),&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: #008080;"&gt;176&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Rectangle(&lt;span style="color: #800080;"&gt;0&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;25&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: #008080;"&gt;177&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Clip();&lt;br /&gt;&lt;span style="color: #008080;"&gt;178&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Paint();&lt;br /&gt;&lt;span style="color: #008080;"&gt;179&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #008080;"&gt;180&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cr.Restore();&lt;br /&gt;&lt;span style="color: #008080;"&gt;181&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: #008080;"&gt;182&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #008080;"&gt;183&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;true&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #008080;"&gt;184&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: #008080;"&gt;185&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #008080;"&gt;186&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;bool&lt;/span&gt;&amp;nbsp;OnTimer()&lt;br /&gt;&lt;span style="color: #008080;"&gt;187&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: #008080;"&gt;188&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&amp;nbsp;(!timer)&amp;nbsp;&lt;span style="color: #0000FF;"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;false&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #008080;"&gt;189&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #008080;"&gt;190&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;QueueDraw();&lt;br /&gt;&lt;span style="color: #008080;"&gt;191&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;true&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #008080;"&gt;192&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #008080;"&gt;193&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #008080;"&gt;194&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;依据两位数获取该数字的十位、个位数&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;195&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;void&lt;/span&gt;&amp;nbsp;DecToBcd(&lt;span style="color: #0000FF;"&gt;int&lt;/span&gt;&amp;nbsp;decimalNum,&amp;nbsp;&lt;span style="color: #0000FF;"&gt;out&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;int&lt;/span&gt;&amp;nbsp;tenDigit,&amp;nbsp;&lt;span style="color: #0000FF;"&gt;out&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;int&lt;/span&gt;&amp;nbsp;entriesDigit)&lt;br /&gt;&lt;span style="color: #008080;"&gt;196&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: #008080;"&gt;197&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tenDigit&amp;nbsp;=&amp;nbsp;decimalNum&amp;nbsp;/&amp;nbsp;&lt;span style="color: #800080;"&gt;10&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #008080;"&gt;198&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;entriesDigit&amp;nbsp;=&amp;nbsp;decimalNum&amp;nbsp;%&amp;nbsp;&lt;span style="color: #800080;"&gt;10&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #008080;"&gt;199&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: #008080;"&gt;200&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: #008080;"&gt;201&lt;/span&gt;&amp;nbsp;}&lt;/div&gt;&lt;/div&gt;&lt;p&gt;主窗体背景图片：&lt;/p&gt;&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/srw962/Clock03.jpg" border="0" height="119" width="164" /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;时钟数字图片：&lt;/p&gt;&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/srw962/Number06.jpg" border="0" height="25" width="180" /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;程序运行图片：&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/srw962/Clock.JPG" border="0" height="219" width="302" /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/srw962/aggbug/2196634.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/srw962/archive/2011/09/30/2196634.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/srw962/archive/2010/09/20/1832009.html</id><title type="text">又一个小问题</title><summary type="text">问题：请写一个方法，两个参数，来判断第二个参数在第一个参数中出现了几次1）用正则表达式，非常容易得出结果：static intFindCountInStringByRegex(string str, string pattern){ if (string.IsNullOrEmpty(str) ||string.IsNullOrEmpty(pattern)) { return 0; } if (pa...</summary><published>2010-09-20T12:24:00Z</published><updated>2010-09-20T12:24:00Z</updated><author><name>山伟</name><uri>http://www.cnblogs.com/srw962/</uri></author><link rel="alternate" href="http://www.cnblogs.com/srw962/archive/2010/09/20/1832009.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/srw962/archive/2010/09/20/1832009.html"/><content type="html">&lt;p style="margin:0in;font-family:SimSun;font-size:10.5pt"&gt;问题：请写一个方法，两个参数，来判断第二个参数在第一个参数中出现了几次&lt;/p&gt;&#xD;
&#xD;
&lt;p style="margin:0in;font-size:10.5pt"&gt;&lt;span style="font-family:Calibri" lang="en-US"&gt;1&lt;/span&gt;&lt;span style="font-family:SimSun" lang="zh-CN"&gt;）用正则表达式，非常容易得出结果：&lt;/span&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;static int&#xD;
FindCountInStringByRegex(string str, string pattern)&lt;/p&gt;&#xD;
&#xD;
&lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;{&lt;/p&gt;&#xD;
&#xD;
&lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;if (string.IsNullOrEmpty(str) ||&#xD;
string.IsNullOrEmpty(pattern)) {&lt;/p&gt;&#xD;
&#xD;
&lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;return 0;&lt;/p&gt;&#xD;
&#xD;
&lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/p&gt;&#xD;
&#xD;
&lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;if (pattern.Length &amp;gt; str.Length) {&lt;/p&gt;&#xD;
&#xD;
&lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;return 0;&lt;/p&gt;&#xD;
&#xD;
&lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/p&gt;&#xD;
&#xD;
&lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;return&lt;span style="color:red"&gt;&#xD;
Regex.Matches(str, pattern).Count&lt;/span&gt;;&lt;/p&gt;&#xD;
&#xD;
&lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;}&lt;/p&gt;&#xD;
&#xD;
&lt;p style="margin:0in;font-size:10.5pt"&gt;&lt;span style="font-family:SimSun" lang="zh-CN"&gt;很简洁，但问题是，若&lt;/span&gt;&lt;span style="font-family:Calibri" lang="en-US"&gt;str&lt;/span&gt;&lt;span style="font-family:SimSun" lang="zh-CN"&gt;为&lt;/span&gt;&lt;span style="font-family:Calibri" lang="en-US"&gt;"aaaa"&lt;/span&gt;&lt;span style="font-family:SimSun" lang="zh-CN"&gt;、&lt;/span&gt;&lt;span style="font-family:Calibri" lang="en-US"&gt;pattern&lt;/span&gt;&lt;span style="font-family:&#xD;
SimSun" lang="zh-CN"&gt;为&lt;/span&gt;&lt;span style="font-family:Calibri" lang="en-US"&gt;"aa"&lt;/span&gt;&lt;span style="font-family:SimSun" lang="zh-CN"&gt;，上面的方法结果为&lt;/span&gt;&lt;span style="font-family:&#xD;
Calibri" lang="en-US"&gt;2&lt;/span&gt;&lt;span style="font-family:SimSun" lang="zh-CN"&gt;，而实际要得到的应该是&lt;/span&gt;&lt;span style="font-family:Calibri" lang="en-US"&gt;3&lt;/span&gt;&lt;span style="font-family:SimSun" lang="zh-CN"&gt;。&lt;/span&gt;&lt;span style="font-family:Calibri" lang="en-US"&gt; &lt;/span&gt;&lt;span style="font-family:SimSun" lang="zh-CN"&gt;这个用正则表达式还真就不知道怎么实现了。&lt;/span&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p style="margin:0in;font-size:10.5pt"&gt;&lt;span style="font-family:Calibri" lang="en-US"&gt;2&lt;/span&gt;&lt;span style="font-family:SimSun" lang="zh-CN"&gt;）无奈还是用最基本的方法实现吧：&lt;/span&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;static int&#xD;
FindCountInString(string str, string pattern)&lt;/p&gt;&#xD;
&#xD;
&lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;{&lt;/p&gt;&#xD;
&#xD;
&lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;if (string.IsNullOrEmpty(str) ||&#xD;
string.IsNullOrEmpty(pattern)) {&lt;/p&gt;&#xD;
&#xD;
&lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;return 0;&lt;/p&gt;&#xD;
&#xD;
&lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/p&gt;&#xD;
&#xD;
&lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;if (pattern.Length &amp;gt; str.Length) {&lt;/p&gt;&#xD;
&#xD;
&lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;return 0;&lt;/p&gt;&#xD;
&#xD;
&lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/p&gt;&#xD;
&#xD;
&lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;int count = 0, index = 0;&lt;/p&gt;&#xD;
&#xD;
&lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;while (index &amp;lt; str.Length) {&lt;/p&gt;&#xD;
&#xD;
&lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:red"&gt;index =&#xD;
str.IndexOf(pattern, index);&lt;/span&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;if (index &amp;gt;= 0) count++;&lt;/p&gt;&#xD;
&#xD;
&lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;else break;&lt;/p&gt;&#xD;
&#xD;
&lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;index++;&lt;/p&gt;&#xD;
&#xD;
&lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/p&gt;&#xD;
&#xD;
&lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;span style="mso-spacerun:yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;return count;&lt;/p&gt;&#xD;
&#xD;
&lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;}&lt;/p&gt;&lt;img src="http://www.cnblogs.com/srw962/aggbug/1832009.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/srw962/archive/2010/09/20/1832009.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/srw962/archive/2010/09/20/1832001.html</id><title type="text">由一个小问题说开去</title><summary type="text">问题：一个日志文件，记录形如访问时间、url这样的记录，每行一条记录。请按每个url访问的次数进行逆排序 一、很简单的一个问题，首先用很普通的思维来解决： 1）先模拟来生成一个类似的文件： private static void GenerateUrlLog() { string[] urlList = new string[7]; urlList[0] = &amp;quot;http://www.sohu.com&amp;quot;; urlList[1] = &amp;quot;http://www.baidu.com&amp;quot;; urlList[2] = &amp;quot;http://www.google.co</summary><published>2010-09-20T12:14:00Z</published><updated>2010-09-20T12:14:00Z</updated><author><name>山伟</name><uri>http://www.cnblogs.com/srw962/</uri></author><link rel="alternate" href="http://www.cnblogs.com/srw962/archive/2010/09/20/1832001.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/srw962/archive/2010/09/20/1832001.html"/><content type="html">&lt;p style="margin:0in;font-size:10.5pt"&gt;&lt;span style="font-family:SimSun"&gt;问题：一个日志文件，记录形如访问时间、&lt;/span&gt;&lt;span style="font-family:Calibri"&gt;url&lt;/span&gt;&lt;span style="font-family:SimSun"&gt;这样的记录，每行一条记录。请按每个&lt;/span&gt;&lt;span style="font-family:Calibri"&gt;url&lt;/span&gt;&lt;span style="font-family:SimSun"&gt;访问的次数进行逆排序&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0in;font-family:SimSun;font-size:10.5pt"&gt;一、很简单的一个问题，首先用很普通的思维来解决：&lt;/p&gt;  &lt;p style="margin:0in;font-size:10.5pt"&gt;&lt;span style="font-family:Calibri"&gt;1&lt;/span&gt;&lt;span style="font-family:SimSun"&gt;）先模拟来生成一个类似的文件：&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;private static void GenerateUrlLog()&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;{&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;string[] urlList = new string[7];&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;urlList[0] = "&lt;a href="http://www.sohu.com/"&gt;http://www.sohu.com&lt;/a&gt;";&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;urlList[1] = "&lt;a href="http://www.baidu.com/"&gt;http://www.baidu.com&lt;/a&gt;";&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;urlList[2] = "&lt;a href="http://www.google.com/"&gt;http://www.google.com&lt;/a&gt;";&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;urlList[3] = "&lt;a href="http://www.sina.com.cn/"&gt;http://www.sina.com.cn&lt;/a&gt;";&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;urlList[4] = "&lt;a href="http://www.cnblogs.com/"&gt;http://www.cnblogs.com&lt;/a&gt;";&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;urlList[5] = "&lt;a href="http://www.yahoo.com/"&gt;http://www.yahoo.com&lt;/a&gt;";&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;urlList[6] = "&lt;a href="http://www.csdn.net/"&gt;http://www.csdn.net&lt;/a&gt;";&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;StreamWriter writer = new StreamWriter("url.data");&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;Random random = new Random(20);&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;int i = 0;&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;span style="color:red"&gt;while (i &amp;lt; 40) {&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt;color:red"&gt;int index = random.Next(7);&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt;color:red"&gt;DateTime now = DateTime.Now;&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt;color:red"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Console.WriteLine(string.Format("{0}\t{1}", now, urlList[index]));&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt;color:red"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;writer.WriteLine(string.Format("{0}\t{1}", now, urlList[index]));&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt;color:red"&gt;i++;&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt;color:red"&gt;Thread.Sleep(2000);&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt;color:red"&gt;}&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;writer.Flush();&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;writer.Dispose();&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Console.WriteLine("-------------------------------------");&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;}&lt;/p&gt;  &lt;p style="margin:0in;font-size:10.5pt"&gt;&lt;span style="font-family:Calibri"&gt;2&lt;/span&gt;&lt;span style="font-family:SimSun"&gt;）顺序遍历文件，用&lt;/span&gt;&lt;span style="font-family:Calibri"&gt;Dictionary&amp;lt;string, int&amp;gt;&lt;/span&gt;&lt;span style="font-family:SimSun"&gt;来记录每个&lt;/span&gt;&lt;span style="font-family: Calibri"&gt;url&lt;/span&gt;&lt;span style="font-family:SimSun"&gt;的访问次数：&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;private static void ParseUrlLog()&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;{&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;StreamReader reader = new StreamReader("url.data");&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;string urlLog = null;&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;Dictionary&amp;lt;string, int&amp;gt; dicLogInfo = new Dictionary&amp;lt;string, int&amp;gt;();&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;while ((urlLog = reader.ReadLine()) != null) {&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;string[] logProperty = urlLog.Split('\t');&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (dicLogInfo.ContainsKey(logProperty[&lt;/span&gt;1])) {&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dicLogInfo[logProperty[&lt;/span&gt;1]] = dicLogInfo[logProperty[1]] + 1;&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;} else {&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dicLogInfo[logProperty[&lt;/span&gt;1]] = 1;&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;}&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;}&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;reader.Dispose();&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Console.WriteLine("-------------------------------------");&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt;color:red"&gt;int urlLogCount = dicLogInfo.Count;&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt;color:red"&gt;for (int i = 0; i &amp;lt; urlLogCount; i++) {&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt;color:red"&gt;int max = 0;&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt;color:red"&gt;string maxUrl = "";&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt;color:red"&gt;foreach (string key in dicLogInfo.Keys) {&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt;color:red"&gt;if (max &amp;lt; dicLogInfo[key]) {&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt;color:red"&gt;max = dicLogInfo[key];&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt;color:red"&gt;maxUrl = key;&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt;color:red"&gt;}&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt;color:red"&gt;}&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt;color:red"&gt;dicLogInfo.Remove(maxUrl);&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt;color:red"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Console.WriteLine(string.Format("{0}\t{1}", maxUrl, max));&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt;color:red"&gt;}&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;Console.WriteLine(result.Count());&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Console.WriteLine("-------------------------------------");&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;}&lt;/p&gt;  &lt;p style="margin:0in;font-size:10.5pt"&gt;&lt;span style="font-family:SimSun"&gt;二、既然都&lt;/span&gt;&lt;span style="font-family:Calibri"&gt;.net 4.0&lt;/span&gt;&lt;span style="font-family:SimSun"&gt;了，就用新的方式来处理一下：&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0in;font-size:10.5pt"&gt;&lt;span style="font-family:Calibri"&gt;1&lt;/span&gt;&lt;span style="font-family:SimSun"&gt;）还是生成日志文件，改用&lt;/span&gt;&lt;span style="font-family:Calibri"&gt;.net 4&lt;/span&gt;&lt;span style="font-family: SimSun"&gt;的并行方式：&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;private static void GenerateUrlLog()&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;{&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;string[] urlList = new string[7];&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;urlList[0] = "&lt;a href="http://www.sohu.com/"&gt;http://www.sohu.com&lt;/a&gt;";&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;urlList[1] = "&lt;a href="http://www.baidu.com/"&gt;http://www.baidu.com&lt;/a&gt;";&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;urlList[2] = "&lt;a href="http://www.google.com/"&gt;http://www.google.com&lt;/a&gt;";&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;urlList[3] = "&lt;a href="http://www.sina.com.cn/"&gt;http://www.sina.com.cn&lt;/a&gt;";&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;urlList[4] = "&lt;a href="http://www.cnblogs.com/"&gt;http://www.cnblogs.com&lt;/a&gt;";&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;urlList[5] = "&lt;a href="http://www.yahoo.com/"&gt;http://www.yahoo.com&lt;/a&gt;";&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;urlList[6] = "&lt;a href="http://www.csdn.net/"&gt;http://www.csdn.net&lt;/a&gt;";&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;StreamWriter writer = new StreamWriter("url.data");&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;Random random = new Random(20);&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;span style="color:red"&gt;&amp;nbsp;Parallel.For(0, 40, j =&amp;gt; {&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt;color:red"&gt;int index = random.Next(7);&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt;color:red"&gt;DateTime now = DateTime.Now;&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt;color:red"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Console.WriteLine(string.Format("{0}\t{1}", now, urlList[index]));&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt;color:red"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;writer.WriteLine(string.Format("{0}\t{1}", now, urlList[index]));&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt;color:red"&gt;Thread.Sleep(2000);&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt;color:red"&gt;});&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;writer.Flush();&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;writer.Dispose();&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Console.WriteLine("-------------------------------------");&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;}&lt;/p&gt;  &lt;p style="margin:0in;font-family:SimSun;font-size:10.5pt"&gt;生成文件速度比之前的方式快，毕竟并行嘛，当然之前的方式也可以改用多线程来做，类似。&lt;/p&gt;  &lt;p style="margin:0in;font-size:10.5pt"&gt;&lt;span style="font-family:Calibri"&gt;2&lt;/span&gt;&lt;span style="font-family:SimSun"&gt;）用&lt;/span&gt;&lt;span style="font-family:Calibri"&gt;LinQ&lt;/span&gt;&lt;span style="font-family: SimSun"&gt;来查询数据：&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;private static void ParseUrlLog()&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;{&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;StreamReader reader = new StreamReader("url.data");&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;string urlLog = null;&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;Dictionary&amp;lt;string, int&amp;gt; dicLogInfo = new Dictionary&amp;lt;string, int&amp;gt;();&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;while ((urlLog = reader.ReadLine()) != null) {&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;string[] logProperty = urlLog.Split('\t');&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;PrintParseLog(logProperty[0], logProperty[2]);&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;if (dicLogInfo.ContainsKey(logProperty[2])) {&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;dicLogInfo[logProperty[2]] = dicLogInfo[logProperty[2]] + 1;&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;} else {&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;dicLogInfo[logProperty[2]] = 1;&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;}&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;}&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;reader.Dispose();&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Console.WriteLine("-------------------------------------");&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt;color:red"&gt;var result = from url in dicLogInfo orderby url.Value descending select url;&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt;color:red"&gt;&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt;color:red"&gt;foreach (var item in result) {&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt;color:red"&gt;Console.WriteLine("{0}\t{1}", item.Key, item.Value);&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt;color:red"&gt;}&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;Console.WriteLine(result.Count());&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Console.WriteLine("-------------------------------------");&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;}&lt;/p&gt;  &lt;p style="margin:0in;font-size:10.5pt"&gt;&lt;span style="font-family:SimSun"&gt;查数据部分少了很多代码，最重要的是打印出&lt;/span&gt;&lt;span style="font-family:Calibri"&gt;url&lt;/span&gt;&lt;span style="font-family:SimSun"&gt;访问次数后，&lt;/span&gt;&lt;span style="font-family:Calibri"&gt;Dictionary&amp;lt;string,int&amp;gt;&lt;/span&gt;&lt;span style="font-family:SimSun"&gt;还可以使用，不像上面的方式打印完后&lt;/span&gt;&lt;span style="font-family:Calibri"&gt;Dictionary&lt;/span&gt;&lt;span style="font-family: SimSun"&gt;也就清空了，而且&lt;/span&gt;&lt;span style="font-family:Calibri"&gt;result&lt;/span&gt;&lt;span style="font-family:SimSun"&gt;也可以多次使用。&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0in;font-size:10.5pt"&gt;&lt;span style="font-family:Calibri"&gt;3&lt;/span&gt;&lt;span style="font-family:SimSun"&gt;）既然&lt;/span&gt;&lt;span style="font-family:Calibri"&gt;LinQ&lt;/span&gt;&lt;span style="font-family: SimSun"&gt;是查数据的，为什么还要构建一个&lt;/span&gt;&lt;span style="font-family:Calibri"&gt;Dictionary&lt;/span&gt;&lt;span style="font-family:SimSun"&gt;，直接查不可以吗？可以：&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;private static void ParseUrlLog2()&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;{&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;StreamReader reader = new StreamReader("url.data");&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;List&amp;lt;string&amp;gt; urlLog = new List&amp;lt;string&amp;gt;();&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;string tempUrl = null;&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;while ((tempUrl = reader.ReadLine()) != null) {&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;urlLog.Add(tempUrl);&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;}&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;reader.Dispose();&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Console.WriteLine("-------------------------------------");&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;span style="color:red"&gt;&amp;nbsp;var result = urlLog.GroupBy(url =&amp;gt; url.Split('\t')[1]).OrderByDescending(s =&amp;gt; s.Count());&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt;color:red"&gt;foreach (var item in result) {&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt;color:red"&gt;Console.WriteLine("{0}\t{1}", item.Key, item.Count());&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt;color:red"&gt;}&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;Console.WriteLine(result.Count());&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Console.WriteLine("-------------------------------------");&lt;/p&gt;  &lt;p style="margin:0in;font-family:Calibri;font-size:10.5pt"&gt;}&lt;/p&gt;&lt;img src="http://www.cnblogs.com/srw962/aggbug/1832001.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/srw962/archive/2010/09/20/1832001.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/srw962/archive/2010/08/21/1805145.html</id><title type="text">杯具了</title><summary type="text">周五快下班时，现场测试发邮件说中午发过去的补丁有bug，并标注了操作的步骤。  看完，我直接给本部测试大姐发腾讯通：&amp;#8220;大姐，那边的大姐比你测得还变态...&amp;#8221;，大姐有些不乐意：&amp;#8220;你是说我...&amp;#8221;  直接跑到大姐工位：明天反正我也得来，这问题明天再说吧。  大姐：可我不想来，今天加会儿班吧。  Boss（部门经理）也威胁我：要不你下周出差去现场得了。  ...</summary><published>2010-08-21T01:31:00Z</published><updated>2010-08-21T01:31:00Z</updated><author><name>山伟</name><uri>http://www.cnblogs.com/srw962/</uri></author><link rel="alternate" href="http://www.cnblogs.com/srw962/archive/2010/08/21/1805145.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/srw962/archive/2010/08/21/1805145.html"/><content type="html">&lt;p id=""&gt;周五快下班时，现场测试发邮件说中午发过去的补丁有bug，并标注了操作的步骤。&lt;/p&gt;&lt;p id=""&gt;看完，我直接给本部测试大姐发腾讯通：&amp;#8220;大姐，那边的大姐比你测得还变态...&amp;#8221;，大姐有些不乐意：&amp;#8220;你是说我...&amp;#8221;&lt;/p&gt;&lt;p id=""&gt;直接跑到大姐工位：明天反正我也得来，这问题明天再说吧。&lt;/p&gt;&lt;p&gt;大姐：可我不想来，今天加会儿班吧。&lt;/p&gt;&lt;p id=""&gt;Boss（部门经理）也威胁我：要不你下周出差去现场得了。&lt;/p&gt;&lt;p&gt;我：我出差也行，这边的bug得有人给我清，别我回来上百个等我清。&lt;/p&gt;&lt;p&gt;Boss：你可以连远程清。&lt;/p&gt;&lt;p&gt;...&lt;/p&gt;&lt;p id=""&gt;不废话了，改吧。改完发现按现场测试的测法是没完没了的问题（靠，不定个规则，让我处理所有情况啊，而且也不看客户到底想要什么样的），后来跟大姐和Boss说了一下，就告诉那边必须按规则输入。然后出补丁，结果平台给的出补丁工具巨麻烦，用了一个多小时出了补丁，又发现跟以前出的补丁冲突（新出的版本比旧的反而早），又重出...&lt;/p&gt;&lt;p&gt;好不容易九点半发出去了，跟Boss说：明天不想来了&lt;/p&gt;&lt;p&gt;Boss来了句：你不来怎么行&lt;/p&gt;&lt;p&gt;...&lt;/p&gt;&lt;p id=""&gt;公司所在地巨偏僻，打不着车，搭Boss的车去城铁。&lt;/p&gt;&lt;p id=""&gt;路上Boss说：可能现在的房价涨得太狠了，我发现你们这帮80后不如以前人踏实，X副总以前当老师的，住宿舍住了10年，后来才出来....&lt;/p&gt;&lt;p&gt;我：我承认，我们也想在领域里有建树，可这房价让我们看不到希望。&lt;/p&gt;&lt;p&gt;另一个同事：生活都有困难啊&lt;/p&gt;&lt;p&gt;...&lt;/p&gt;&lt;p id=""&gt;无语啊...&lt;/p&gt;&lt;p&gt;Boss其实应该感到高兴，毕竟我们这些人都是比较老实的，不像其他部门，要么吵吵加薪要么离职的。&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;天天一堆bug，被人说成代码质量不高，拜托，大部分都是我维护的其他人的，我自己从头做到尾的bug又有多少？说没自测，看看一天那么多事，还老催着提交单元，哪有时间自测？如果我自测了，延误了提交单元，责任不还在我这儿？从来不考虑是不是决策层的问题。&lt;/p&gt;&lt;p id=""&gt;还有需求、设计这些岗位，一天到晚琢磨客户可能需要的是什么样吧，为什么不去现场问问？闭门造车做出的需求、设计，还指望程序员做出让客户满意的产品？整个项目组已经背离了公司创立当年的宗旨了...&lt;/p&gt;&lt;p&gt;周六大早上醒来发现正在下雨，好像还挺大，打开电脑查了一下周日没雨，那就周日去吧...&lt;/p&gt;&lt;p id=""&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p id=""&gt;注：周五晚上那个其实也没什么大不了的功能，只不过是两个文本框一个录入前缀，一个录入流水号（按理流水号应该只能是数字字符组成） ，然后根据前缀+流水号生成一个序号。&lt;/p&gt;&lt;p&gt;比如前缀lot，流水号是0000&lt;/p&gt;&lt;p id=""&gt;那么要生成lot0000、lot0001这样的序号(后一个是前一个的数字加1)&amp;nbsp;&lt;/p&gt;&lt;p id=""&gt;杯具在于没有规定前缀可以录几个字符，是不是可以录入数字，以及是怎么组合的；还有个杯具的是平台封装的文本框不支持正则表达式设置隐藏码，于是就可能流水号会录入非数字字符；于是就出现了杯具的形如前缀为lot00，流水号0000，那我怎么去判断lot000000是不是前缀lot，流水号000000？&lt;/p&gt;&lt;p id="aeaoofnhgocdbnbeljkmbjdmhbcokfdb-mousedown"&gt;最后处理为前缀必须为字符结尾或者干脆前缀为空："(?&amp;lt;prefix&amp;gt;[\D*|\d*]*[\D]+)*(?&amp;lt;lotTrailNo&amp;gt;[0-9]+) "&lt;/p&gt;&lt;img src="http://www.cnblogs.com/srw962/aggbug/1805145.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/srw962/archive/2010/08/21/1805145.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/srw962/archive/2006/02/22/335415.html</id><title type="text">关于.net 2.0程序连接SQL Server 2K的问题</title><summary type="text">同一个局域网内A、B、C三台机器，均安装.net 1.1和2.0 其中A安装有SQL Server 2K，B和C都没有安装SQL Server 2K，但C安装有SQL Server 2005 Express 同样的程序，.net 1.1编译后在A、B、C运行都能访问A机器的SQL Server 2K .net 2.0编译后，在A中能访问SQL Server 2K，在B中不能，C中却可以 请问哪位大...</summary><published>2006-02-22T05:19:00Z</published><updated>2006-02-22T05:19:00Z</updated><author><name>山伟</name><uri>http://www.cnblogs.com/srw962/</uri></author><link rel="alternate" href="http://www.cnblogs.com/srw962/archive/2006/02/22/335415.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/srw962/archive/2006/02/22/335415.html"/></entry><entry><id>http://www.cnblogs.com/srw962/archive/2006/01/01/309341.html</id><title type="text">也看属性和readonly（读Effective C#有感）</title><summary type="text">好久没在园子里发过帖子了，2006年的第一天本该回首05年的点滴、展望未来的，无奈总结从圣诞夜就开始写到现在都没写完。最近在看Bill Wagner的《Effectie C#》，本来想把书中提到的50条提高效率的方法逐一翻译出来也写成一系列博客，后来在MSDN看到李建忠的《Effective C#》 翻译札记，知道他在翻译这本书，于是我也就不再献丑了，只写一些体会吧。Item 1： Always ...</summary><published>2006-01-01T04:10:00Z</published><updated>2006-01-01T04:10:00Z</updated><author><name>山伟</name><uri>http://www.cnblogs.com/srw962/</uri></author><link rel="alternate" href="http://www.cnblogs.com/srw962/archive/2006/01/01/309341.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/srw962/archive/2006/01/01/309341.html"/></entry><entry><id>http://www.cnblogs.com/srw962/archive/2005/11/18/279169.html</id><title type="text">睡梦中想到的关于用宏代替手工编写代码</title><summary type="text">现在手头做的工作是给一家公司做奖金结算系统，之前也是有个程序员做的（我也纳闷儿，怎么现在做的都是别人失败了才让我做），在用他的程序计算了两个月左右的时候发现总出计算错误，然后这家公司让我做。用我的计算了这么长时间了，也没出过什么问题，前天忽然说因为前面的出错的已经都发出去了，和现在数据库里的数据不一致，要把数据库里的数据改过来（现在终于明白了什么情况下错的也要当成正确的）。我一看不能让用我程序的文...</summary><published>2005-11-17T23:08:00Z</published><updated>2005-11-17T23:08:00Z</updated><author><name>山伟</name><uri>http://www.cnblogs.com/srw962/</uri></author><link rel="alternate" href="http://www.cnblogs.com/srw962/archive/2005/11/18/279169.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/srw962/archive/2005/11/18/279169.html"/></entry><entry><id>http://www.cnblogs.com/srw962/archive/2005/11/02/267076.html</id><title type="text">再谈不规则窗体制作</title><summary type="text">因为要给师弟们讲课，我写了异型窗体制作（两种方法） 这篇博客。后来有个师弟说他把我的代码修改成了一个组件，想把这个组件拖拽到窗体里，经过简单设置就能实现不规则窗体，但是没有成功。经过实验，我这里重新把原来的代码整理了一下，下面这个组件CusomForm编译后就可以使用，拖拽到窗体后需要设置ParentForm、BackImage、TranTransparentColor三个属性，并且不用再写代码处...</summary><published>2005-11-02T05:04:00Z</published><updated>2005-11-02T05:04:00Z</updated><author><name>山伟</name><uri>http://www.cnblogs.com/srw962/</uri></author><link rel="alternate" href="http://www.cnblogs.com/srw962/archive/2005/11/02/267076.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/srw962/archive/2005/11/02/267076.html"/></entry><entry><id>http://www.cnblogs.com/srw962/archive/2005/11/01/266242.html</id><title type="text">一条SQL语句的写法</title><summary type="text">有memberinfo和updatelog两个表，通过memberinfo的memberid和updatelog的memberid对两个表进行关联，memberinfo纪录会员基本信息，updatelog纪录会员的升级信息。 memberinfo数据如下 memberid star 001  1 002  1 003  2 updatelog数据如下 memberid endstar update...</summary><published>2005-11-01T04:56:00Z</published><updated>2005-11-01T04:56:00Z</updated><author><name>山伟</name><uri>http://www.cnblogs.com/srw962/</uri></author><link rel="alternate" href="http://www.cnblogs.com/srw962/archive/2005/11/01/266242.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/srw962/archive/2005/11/01/266242.html"/></entry><entry><id>http://www.cnblogs.com/srw962/archive/2005/10/24/261119.html</id><title type="text">Windows Installer的简单应用</title><summary type="text">因为要做一个类似Windows Update的东西，以免程序更新时跑来跑去麻烦，虽然类似的工具很多，但是大都很复杂，于是决定自己做一个类似的简单程序。 对比客户端和服务器端的程序版本，并把服务器端新版本程序拷回来都好做（用VPN，相当于局域网内文件复制），但是安装新版本程序就有问题了，因为Windows Installer安装程序时如果发现有以前的版本就会要求你自己删除旧版程序后再重新安装，但我要...</summary><published>2005-10-24T13:44:00Z</published><updated>2005-10-24T13:44:00Z</updated><author><name>山伟</name><uri>http://www.cnblogs.com/srw962/</uri></author><link rel="alternate" href="http://www.cnblogs.com/srw962/archive/2005/10/24/261119.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/srw962/archive/2005/10/24/261119.html"/></entry></feed>
