in

Darkthread

黑暗執行緒
All Tags » .NET » CODE (RSS)

Browse by Tags

  • 反白圖檔做環保

    網友山姆先生問了一個 有趣 問 題 : 如何在Excel插入(或複製貼上)時將圖片反黑,因為經常會複製一些類似Dos的黑底白字畫面,列印時相當浪費印表機碳粉,很不環保... 這個需求其實不少螢幕擷取工具已內建了現成功能,例如: SnagIt 雖然已有工具,但畢竟還是要幾個操作步驟才能搞定。想了一下,其實應用先前 修正VS2010剪貼內容 展示過的剪貼簿 篡改 修改技巧,配合GDI+豐富的圖形處理功能,自己寫應該也不難。再加上寫程式為環保貢獻心力是很有意義的事,所以我索性當成題材小練了一下武功。 以下程式我是寫成Console Application,可以在放捷徑在桌面,抓完DOS畫面後執行它,就可以將剪貼簿中的圖檔"白的說成黑的...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 06-28-2010
  • CODE-檢查伺服器時間同步

    最近因為伺服器時間不同步,造成資料庫記錄時間基準不一,形成困擾。 理論上同一Domain下的主機都應會自動同步時間,但實務上偶爾就是會有出鎚的狀況。為了能快速掌握時間誤,我寫了以下的工具,可自動比對多台主機時間,將之整理成一張網頁報告,以便能快速找出伺服器時間不同步的問題。最終產出如下: 程式的運作原理是以 多執行緒 方式透過 NetRemoteTOD API 同時向多台主機取得時間。誤差判定是以計算"收到結果時間"與"結果內容時間"間差異求得(這不算精準的衡量做法,但基於取得成本低,且具有一定程度參考價值,就姑且用之),最後將結果輸出成HTML。程式碼如下...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 04-23-2010
  • CODE-非同步方法之同步化及逾時機制(完成回Call版)

    前天寫了一篇 非同步方法之同步化及逾時機制 ,與chicken大人討論程式碼中Polling的部分(指每隔一段時間檢查一次結果的輪詢寫法),固然邏輯簡單,但效率與精確度不優,但若被呼叫的元件本身不提供"完成後主動通知"的機制,Polling雖然討厭,卻也無法避免! 若被呼叫端在完成工作時,可透過事件回呼方式通知呼叫方,則整個局勢就改觀了! 於是索性也 提筆 敲鍵練習一番,補充"完成後會回Call"情境的做法。 如下例,我們在AsyncJobClass完成工作後,新增主動回Call AfterFinished事件通知呼叫方的功能(橘底部分),如此便可引用AutoResetEvent來做同步...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 03-23-2010
  • CODE-非同步方法之同步化及逾時機制

    今天遇到的小需求: 有個元件函數以非同步方式執行,透過旗標變數表示執行狀態,我想在Console Application中以同步方式呼叫該函數,等待其執行完畢程式就結束,但要有逾時中止的功能。 非同步函數的例子如以下範例中的AsyncJobClass.DoAsyncWork(),它會以另開執行緒方式執行,在5秒後將Ready旗標設為true。透用這種方式,我模擬了一個非同步執行的作業。若非同步過程發生錯誤時,AsyncJobClass會呼叫自訂OnError事件執行特定邏輯。 我寫了一個AsyncToSyncHelper實現非同步作業的同步化,主要透過方法CheckStatusWithTimeout...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 03-22-2010
  • CODE-Convert Text to PDF in C#

    透過程式直接將Text內容轉換成PDF的程式範例,寫來給其他組同事做為系統整合模組開發參考,順便PO文備忘。 要在.NET轉PDF,當然少不了大家都說讚的 iTextSharp ,程式很簡單,我還順手加了一個遇到"\f" (0x0C) Form Feed符號就強制換新頁的功能。 <%@ Page Language="C#" %> <%@ Import Namespace="iTextSharp.text" %> <%@ Import Namespace="iTextSharp.text.pdf"...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 02-09-2010
  • CODE-用FtpWebRequest搬移FTP Server上的檔案

    寫程式這麼多年,第一次遇到要在FTP Server搬檔案的需求,特此PO文一篇留念。 原本很擔心 我大戰FTP的得力助手--FtpWebRequest 不支援這個較少見的需求,看了一下 WebRequestMethods.Ftp ,還真沒看到Move、MoveFolder之類的項目。且慢,原來這裡有一個隱藏密技, Rename 時把目錄也換掉,就可達到搬檔案的效果了。程式範例如下,請笑納。 static void Main( string [] args) { string url = "ftp://192.168.1.1/origFolder/origFile.txt" ;...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 01-08-2010
  • CODE-將地址中的阿拉伯數字轉為中文大寫

    前幾天同事討論到要將地址資料中的阿拉伯數字都轉成中文大寫(一二三四...),我想起了前些時候看到的 Microsoft Visual Studio International Feature Pack 2.0 就內建了數字轉中文大寫的功能,試作如下。 程式主要是用Regex去比對出數字(\d+)的部分,逐一換成中文大寫。而更換時我用算位置的方法而不直接用Replace,以免把"12弄123號"搞成"十二弄十二3號";也因為要算位置,加上每次更換完字串長度可能會改變,所以也不能直接用foreach (Match m in Regex.Matches(…))把所有數字挑出來一次處理...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 12-22-2009
  • CODE-透過程式修改App.config

    小小的範例程式。 手上有個排程定期執行的程式(為了做到執行時不顯示Console視窗,我選擇做成Window Form專案,再讓Form1隱形 [補充2009-12-04: 此處用Form1是因為我還是寫了一個方便開發測試Debbug專用的UI,事實上連Form1可以不用建立,直接執行必要的邏輯即可,謝謝 Phoenix 補充 ] ,設定都放在MyApp.exe.config的AppSettings裡。但其中有些設定值較複雜,需要注意是否符合規則、或是要加密後儲存。由於不想另外寫UI或獨立設定程式,於是我決定用"MyApp.exe set configKey configValue"命令列執行方式將設定值檢核及加密邏輯內建在同一支執行檔裡...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 12-03-2009
  • CODE-具有Default Namespace XML文件的查詢

    我恨透了XML的Namespace, 尤其是xmlns這種預設Namespace。 每次寫Code處理這段都要東查西抄才能搞定,最慘的是連怎麼弄出來自己也模模糊糊。再不然就是走偏門,抓到OuterXML Replace掉xmlns="..."後重新LoadXml,當作沒有Namespace這回事(好像很多人也是 這樣搞 )。當然,這種態度是不對的,叔叔太頹廢了,小朋友們千萬不可以學~~ 今日有幸承蒙 chicken大師 點化,終於學會怎麼正確處理Default Namespace,特貼文分享。 public static void TestNamesapce() { XmlDocument...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 11-25-2009
  • 挑戰自訂條件流程的彈性極限

    在開發強調"彈性"的系統功能時,我偶爾會遇到要由動態產生的複雜運算式決定流程的情境,例如: "( (a + b) > 0 || c > 100 && ( d || e ) )",當運算式參數可預期或是會固定依某些條件變化時,這倒還不算什麼難題;但若是 運算式被要求開放使用者或使用元件的開發人員自由設定 ,就真的不是一般Coding做法能解決的,得寫個Parser解析使用者輸入的運算式再算出結果。而Parser得掌握所有的語法規則,涵蓋各種可能出現的組合,要寫得夠強韌不易出錯實非易事。 相形之下,Javascript裡有eval...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 10-01-2009
第1頁,共2頁 (17個項目) 1 2 下一頁 >
Powered by Community Server (Non-Commercial Edition), by Telligent Systems