八月 21

        話說因為買了一台新筆電,所以必須強迫升級到 Vista,離開了熟悉的 XP,踏入看似燦爛的 Vista 世界,竟開啟了一段奇妙的旅程,我將其遇到的事物,寫成這「Vista事件簿」,希望可以幫助到跟我一樣在 Vista 迷航的人。

「事件01:KMPlayer 或 Media Player Classic 播放影片變黑白」

        現在大多數的人都是用 KMPlayer 或 Media Player Classic 搭配 K-Lite Codec Pack 解碼包來播放影片,以上搭配在影音界堪稱「無敵影音播放組」,而小弟我當然也不例外,在 XP 時代我使用「無敵影音播放組」快樂的看著我的毛片,已經有四年之久,於是乎當我踏進 Vista 的世界裡的時候,我感到徬徨無助,於是乎我呼叫「無敵影音播放組」,來慰藉我無助的心靈。

        當我安裝好 KMPlayer + Media Player Classic + K-Lite Codec Pack ,播放影片一看,竟然變成以下德行:

 
(現在要在電腦裡找到有穿衣服的護士,真的很難)

(繼續閱讀 »)

八月 12

今天考丙級軟體設計...

亂講 2 個回應 »   瀏覽人數:[ 514user+317bot ]

好吧!我承認我槓龜了,今天算白跑一趟,已經是小心再小心了,搜尋以前考過的經驗談,考試前寫下每個題組的重點,不過還是徒勞無功。

原因是:「我根本就買錯書了」,同樣是 CC123 出版的,不過有分 2006 版,及 2008 版,新版本有修正以前出現的 BUG,不過我沒買,所以我不知道。

舉例來說,舊版在題庫方面有是非、選擇兩種,不過今天我到考場才知道,原來軟設的學科已經去掉是非,改成選擇題 80 題,幸好學科還有過,不然真是欲哭無淚,白白浪費這麼多時間。

再買本 2008 版,重新來過吧!

八月 02

最近遇到了 MSN 無法安裝的問題,出現如下訊息:

1.您的電腦已經有較新 Windows Live Messenger 版本….

2.Windows Live Messenger 安裝失敗,錯誤碼是: ‘1603′。

找了很久都找不出原因,而新增移除內,也沒有新版的 MSN,所以就這樣一直無法安裝 MSN,後來突然想到,我之前有抓過 MSN9 免安裝版,但是無法執行所以我就刪除它了,應該是這個問題,造成我無法安裝 MSN。

但是我也沒沒辦法移除 MSN9 的安裝訊息,因為在 新增/移除 內沒有選項可供移除,後來 Google 了一下,發現微軟有出 Windows Installer CleanUp 公用程式,可以移除系統內的幽靈程式,使用方法很簡單,選擇您要移除的項目,按下 Remove 按鈕即可。

系統執行畫面如下:

七月 22

使用 ZedGraph 製作統計圖

程式 沒有回應 »   瀏覽人數:[ 891user+553bot ]

這幾天研究了 ZedGraph,發現它是一套很好用的畫圖表工具,練習做了一個統計圖,大家參考看看!

C#:
  1. //記得要加入參考
  2. using ZedGraph;
  3.  
  4. //資料來源       
  5. private DataTable getDT()
  6. {
  7.     DataTable dt = new DataTable();
  8.     dt.Columns.Add("學號", System.Type.GetType("System.String"));
  9.     dt.Columns.Add("姓名", System.Type.GetType("System.String"));
  10.     dt.Columns.Add("國文", System.Type.GetType("System.Int32"));
  11.     dt.Columns.Add("英文", System.Type.GetType("System.Int32"));
  12.     dt.Columns.Add("數學", System.Type.GetType("System.Int32"));
  13.  
  14.     dt.Rows.Add("B9510001", "崔昱翰", 85, 66, 71);
  15.     dt.Rows.Add("B9510002", "王詩光", 65, 92, 88);
  16.     dt.Rows.Add("B9510003", "劉育白", 52, 66, 63);
  17.     dt.Rows.Add("B9510004", "許威宇", 98, 70, 61);
  18.     dt.Rows.Add("B9510005", "李佩珊", 81, 63, 76);
  19.     dt.Rows.Add("B9510006", "潘紹興", 91, 77, 76);
  20.  
  21.     return dt;
  22. }
  23.  
  24. //學生成績
  25. public void StudentChart1(ZedGraphControl zgc)
  26. {
  27.     // Google網域搜尋:Fill site:http://zedgraph.sourceforge.net/documentation
  28.  
  29.     GraphPane myPane = zgc.GraphPane;
  30.    
  31.     //
  32.     DataTable dt = getDT();
  33.  
  34.     // Set the title and axis labels
  35.     myPane.Title.Text = "學生成績量化表";
  36.     myPane.XAxis.Title.Text = "學生姓名";
  37.     myPane.YAxis.Title.Text = "分數";
  38.  
  39.     PointPairList list1 = new PointPairList();
  40.     PointPairList list2 = new PointPairList();
  41.     PointPairList list3 = new PointPairList();
  42.    
  43.     Random rand = new Random();
  44.  
  45.     // Generate random data for three curves
  46.     for (int i = 0; i <dt.Rows.Count; i++)
  47.     {
  48.        
  49.         double x = (double)i;
  50.         double y1_chian = Convert.ToDouble(dt.Rows[i]["國文"]);
  51.         double y2_eng = Convert.ToDouble(dt.Rows[i]["英文"]);
  52.         double y3_math = Convert.ToDouble(dt.Rows[i]["數學"]);
  53.         list1.Add(x, y1_chian);
  54.         list2.Add(x, y2_eng);
  55.         list3.Add(x, y3_math);
  56.     }
  57.  
  58.     // create the curves
  59.     // BarItem.Bar.Fill(Color) 填入單一顏色
  60.     // BarItem.Bar.Fill(Color, Color, Color, 90) 填入漸層顏色,第4參數是旋轉角度
  61.     BarItem myCurve1 = myPane.AddBar("國文", list1, Color.Red);
  62.     myCurve1.Bar.Fill = new Fill(Color.FromArgb(255, 238, 221));
  63.    
  64.     BarItem myCurve2 = myPane.AddBar("英文", list2, Color.Blue);
  65.     myCurve2.Bar.Fill = new Fill(Color.FromArgb(221, 255, 238));
  66.    
  67.     BarItem myCurve3 = myPane.AddBar("數學", list3, Color.Green);
  68.     myCurve3.Bar.Fill = new Fill(Color.FromArgb(238, 221, 255));
  69.  
  70.    
  71.    
  72.     // Fill the axis background with a color gradient
  73.     // 背景色
  74.     // myPane.Chart.Fill = new Fill(Color.White, Color.FromArgb(255, 255, 166), 45.0F);
  75.  
  76.     myPane.XAxis.MajorTic.IsBetweenLabels = true;
  77.  
  78.     //加入X LabelText
  79.     string[] labels = new string[6];
  80.     for (int i = 0; i <dt.Rows.Count; i++)
  81.     {
  82.         labels[i] = Convert.ToString(dt.Rows[i]["姓名"]);
  83.     }
  84.     myPane.XAxis.Scale.TextLabels = labels; //X軸的說明文字
  85.     myPane.XAxis.Type = AxisType.Text;      //X軸類型
  86.  
  87.     //重新計算目前數據範圍
  88.     zgc.AxisChange();
  89.  
  90.     // expand the range of the Y axis slightly to accommodate the labels
  91.     // myPane.YAxis.Scale.Max += myPane.YAxis.Scale.MajorStep;
  92.     // YAxis最大值
  93.     myPane.YAxis.Scale.Max = 110;
  94.  
  95.     // Create TextObj's to provide labels for each bar
  96.     // 在bar上顯示數值
  97.     BarItem.CreateBarLabels(myPane, false, "f0");
  98.  
  99.     //顯示格點
  100.     myPane.YAxis.MajorGrid.IsVisible = true;
  101.     myPane.XAxis.MajorGrid.IsVisible = true;
  102. }

七月 21

        最近參考了幾個統計圖表控件包,OpenSource 的有 ZedGraphNplot 等,但是相比之下還是 ZedGraph 強大,方便一些,其他的感覺還是半成品。

        收費的套件就多了,只要是商業的報表開發工具都有統計圖表的功能,水晶報表,ActiveReport,Reporting Service,不過要方便,功能單一的還是 dotnetCharting。下面主要從 winform 使用上說說 ZedGraph 和 dotnetCharting。

        從效果上說 dotnetCharting 確實沒的說,水晶式效果很是炫目,這應該是其最大的賣點。為了便於開發者學習,帶了各種效果的示例代碼。DotnetCharting 在產生統計圖的時候需要設置一個臨時目錄,用來保存產生的統計圖的圖片,dotnetCharting 的圖表效果好,很大程度上是因為它生成了圖片,然後將其顯示在界面上。當然,作為代價,它犧牲了性能。同時,它不支持縮放,雖然你可以通過更改坐標軸的刻度來實現這個功能,但是性能上就差了很多。

如果你對性能要求不高,dotnetCharting 是非常好的選擇。

        ZedGraph 最大的賣點在哪裡?應該是OpenSource,你可以修改代碼以適應自己的需求,例如:ZedGraph 在畫線型圖的時候,線條沒有使用抗鋸齒,你只要修改 Line類的 Default 結構中的預設設置就可以了。和 dotnetCharting 相比,ZedGraph 的效果要差一些,不過,要是自己調整的好,也還不錯,但是 ZedGraph 的優勢不在這裡。

        由於 ZedGraph 是使用 GDI+ 直接在 Canvas 上進行描畫,所以,性能得到了保證,如果你改變坐標軸的刻度,和 dotnetCharing 相比,ZedGraph 的反應速度是很快的。基於此,ZedGraph 提供了很重要的縮放和拖動功能,你可以通過鼠標滾輪進行方法,縮小圖表,可以通過鼠標中鍵來拖動,非常方便。

        對於類似股市的實時走勢,CPU 使用率等實時變化的數據,使用 ZedGraph 也可以很方便地作到。ZedGraph 在基於 PointPairList 作畫,所以你只要在 PointPairList 這個集合中添加新的數據,然後進行重畫就可以實現了,對於性能,上面說了,由於是直接使用 GDI+,性能是比較好的,我測過 400 個點是沒問題的。所以,ZedGraph 對於實時要求比較強的需求也是可以應對的。

        總結的來說,dotnetCHARTING 產出的圖表效果好,但是性能方面較差,對實時要求強的需求不適應。ZedGraph 開放原始碼,效果比起 dotnetCHARTING 差,但是性能好,能適應有實時要求的數據。

本文章轉貼於:http://blog.csai.cn/user1/17072/archives/2009/37706.html

七月 21

CrystalDiskInfo 快速瞭解硬碟的情形

軟體 沒有回應 »   瀏覽人數:[ 534user+392bot ]

這是一套綠色軟體,開放原始碼,免安裝,支援中文系統,CrystalDiskInfo 有助於我們瞭解目前電腦中工作的硬碟,健康情形如何,其實最主要我還是看「使用時間」的多少,來判定硬碟的狀況如何!

下載:CrystalDiskInfo 2.1.0

七月 16

Locate32 超強本地端檔案搜尋軟體

軟體 沒有回應 »   瀏覽人數:[ 704user+371bot ]

如果你有使用過 Linux 上的 Locate 搜尋功能,一定對此超快的檔案搜尋感到記憶深刻,Locate 的運作原理是在本機上建立一個索引檔,在找檔案的時候,參考此索引檔,所以才會很快,不過也有一個缺點,索引檔必須常更新,已確保找出來的檔案是正確的,在 Linux 上我們必須藉助 Script 、或排程來達成自動更新的效果。

現在Win32上也有類似的搜尋軟體,Locate32 它的原理,也是建立索引檔來搜尋,內見排程功能,可以設定自動更新。建議每天至少更新一次。

我們可以丟掉 Windows 內建的搜尋了。

官方下載:http://locate32.net/index.php

中文化下載:http://portable.easylife.tw/397

七月 16

Virtual Floppy Drive(虛擬軟碟機)

軟體 2 個回應 »   瀏覽人數:[ 1,885user+782bot ]

雖然軟碟機已經逐漸在PC上消失,但是在某些場合還是必須要用到,例如我最近遇到的問題,我報名丙級軟體設計,簡章附的資料必須在軟碟機中執行,搞的我一個頭兩個大,去買一個也不是,不用軟碟練習也不是。

幸好找到這一個 Virtual Floppy Drive(VFD虛擬軟碟機),可以在電腦上模擬一個A:磁碟機,可讀可寫,方便的很。

官方下載:http://chitchat.at.infoseek.co.jp/vmware/vfd.html

一、解開壓縮後執行,先切換到 Driver 頁面,在 Driver File 選擇目錄下的 vfd.sys,然後選擇 Install 安裝,接著點選 Start,虛擬裝置就開始運行了。

 

 

二、接著切換到 Driver0 頁面,點選上方的 Driver Letter 的 Change 按鈕,選擇裝置的代號,一般預設為 A 槽,按下 OK 選擇完成後,就可以在「我的電腦」裡,看見 3.5軟碟機(A:) 出現了。

  

 

三、建立磁碟機的映像檔,同樣在 Driver0 頁面,點選下方 Open/Create 按鈕,在開啟的新視窗中,點選 Create 按鈕,建立映像檔,這時候進入「3.5軟碟機(A:)」中,就可以存取檔案了。

六月 22

其實 WinForm 跟 WebForm 在連結資料庫方面其實差不了太多。

C#:
  1. protected void Page_Load(object sender, EventArgs e)
  2. {
  3.     //第一:連結SQL資料庫
  4.     string connstr = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\test_Data.MDF;Integrated Security=True;Connect Timeout=30;User Instance=True";
  5.     SqlConnection conn = new SqlConnection(connstr);
  6.     conn.Open();
  7.  
  8.     //第二:執行SQL指令
  9.     string sqlstr = "select * from test";
  10.     SqlCommand cmd = new SqlCommand(sqlstr,conn);
  11.  
  12.     SqlDataReader dr = cmd.ExecuteReader();
  13.  
  14.     //第三:印出資料
  15.     while (dr.Read())
  16.     {
  17.         Response.Write("文章編號:" + dr["id"] + "<br>");
  18.         Response.Write("日  期:" + dr["test_time"] + "<br>");
  19.         Response.Write("文章標題:" + dr["title"]);
  20.         Response.Write("<hr>");
  21.     }
  22.  
  23.     //第四:關閉連線
  24.     cmd.Cancel();
  25.     dr.Close();
  26.     conn.Close();
  27.     conn.Dispose();
  28. }

六月 22

工具:RequiredFieldValidator
驗證:必要輸入項
說明:確保使用者不會略過輸入項目。如需詳細資訊,請參閱 HOW TO:驗證 ASP.NET 伺服器控制項的必要項目。

工具:CompareValidator
驗證:與某個值的比較
說明:使用比較運算子 (例如小於、等於、大於),將使用者輸入的值與常數值、另一個控制項的值,或特定資料型別做比較。如需詳細資訊,請參閱 HOW TO:比對特定值驗證 ASP.NET 伺服器控制項和 HOW TO:比對資料型別驗證 ASP.NET 伺服器控制項。

工具:RangeValidator
驗證:範圍檢查
說明:檢查使用者的輸入是否介於指定的上下限之間。您可以檢查成對的數字、英文字母字元和日期內的範圍。如需詳細資訊,請參閱 HOW TO:比對範圍值驗證 ASP.NET 伺服器控制項。

工具:RegularExpressionValidator
驗證:樣式比對
說明:檢查輸入是否符合規則運算式 (Regular Expression) 所定義的樣式。這類的驗證可讓您檢查字元 (例如電子郵件地址、電話號碼、郵遞區號等項目中的字元) 的預期順序。如需詳細資訊,請參閱 HOW TO:比對模式驗證 ASP.NET 伺服器控制項。

工具:CustomValidator
驗證:使用者定義
說明:使用您自己撰寫的邏輯驗證使用者的輸入。這類驗證可讓您檢查執行階段時衍生的值。如需詳細資訊,請參閱 HOW TO:使用 ASP.NET 伺服器控制項的自訂函式驗證HOW TO:比對資料庫值驗證 ASP.NET 伺服器控制項。


MSDN

 1 2 3 4 5 6 7 8 ...13 14 15 下一頁