Browse by Tags

CODE-顯示農曆日期
昨天提到 使用TaiwanLunisolarCalendar類別取得農曆日期 ,經網友風箏提醒,針對閏月要額外處理,於是一不做二不休整理成以下範例,順道把天干地支、生肖也一起加進去,還很 假掰 貼心地套用初一、初二等慣用語,程式碼分享給有需要的朋友參考。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Globalization;   namespace...
Posted 02 March 2012 04:55 AMJeffrey | with no comments 7,898
Filed under: ,
TIPS-製作固定欄寬資料檔
昨天小談了 固定欄寬資料檔解析 程式的寫法,有人問到解析之餘要如何產生固定欄寬資料,並提了一些常見 但有點機車 的需求,例如: 針對數字欄位要能指定數值靠右左方補零(不知為什麼,某些"阿公"很愛用這種不補空白要補零的規格,每次要肉眼除錯時,十來個數字欄位夾雜零零相連到天邊,數位置數到眼睛都快出血了)、文字過長要能自動截切,還要避免切成半個中文字... 禁不住這團機車小需求的刺激,忽然一陣熱血衝腦... 待神智恢復時,發現自己端坐在電腦前,VS2010開啟中的專案有一段小程式....
Posted 25 February 2012 10:36 PMJeffrey | with no comments 7,045
Filed under: , ,
TIPS-固定欄寬資料檔的解析
跟傳統系統打交道時,XML、JSON等格式多半無用武之地,往往得透過"固定欄寬資料格式"進行資料交換。 在撰寫程式解析固定欄寬資料時,有幾點注意事項: 欄位寬度計算與中文編碼有關,實務上使用BIG5編碼還是大宗(阿公級系統很少能支援Unicode)。 BIG5編碼中,半形英數字佔一個Byte,全形符號及中文佔兩個Byte,欄寬規格書中CHAR(n),n多指Bytes,所以計算長度時,需把握中文算2或英數字算1的原則。 建議不要再用比對第一個Byte ASCII的方法自己判別全半形...
OracleCommand Visualizer for VS2010
前陣子開發系統時,常在抓OracleCommand的執行期錯誤,有時是SQL語法寫錯,有時是參數數目不符,有時則是參數值給錯... (列原因寫到自己都汗顏,寫程式明明就要心思細膩,我的心思... 應該粗如電線桿吧?) 雖然VS2010在偵錯階段提供了很強的物件檢視功能,能逐一檢視物件的每個屬性且能逐層展開,必要時還可用即時運算視窗下指令做進一步操作分析,但每次要逐一檢查OracleCommand.Parameters還是有些麻煩,心想,如果能一次列出CommandText及所有參數的型別跟內容就太好了...
Posted 16 July 2011 08:22 AMJeffrey | 5 comment(s) 13,715
Filed under: , , ,
CODE-分贓程式的寫法(LINQ進化版)
很久前曾寫過一篇範例,介紹將數字金額依不同權重拆成多筆的 分贓程式 寫法,最近專案又再度陷入算錢的漩渦,但局面有點改變。近一兩年被.NET 3.5/.NET 4寵壞了,已經有點"不用LINQ不會寫Code"的傾向,因此現在寫的帳務程式,就大量引用了List<SomeObject>的技巧處理資料。舉例來說,拆帳結果被裝在類似List<ResultObject>的IEnumerable裡,要做到依權重分攤,最直覺的寫法是跑個迴圈套用原本的分贓演算法,看起來就能輕鬆搞定...
Posted 29 June 2011 06:18 AMJeffrey | 1 comment(s) 12,890
Filed under: , ,
依Dictionary產生INSERT Script
工作上有些場合需要將變更資料庫的過程以Script方式保存,方便交給其他人執行。 有不少工具可以協助從現有資料庫轉出INSERT Script,例如: SQL Dumper 、 Database Publish Wizard 、 Toad ... 都辦得到。不過剛好有個小需求是希望直接由.NET組成資料輸出INSERT Script,於是我寫了個很陽春的工具函數,將Dictionary<string, object>轉成Oracle用的INSERT Script,其中會再依object的型別做不同的處理...
Posted 17 May 2011 06:15 AMJeffrey | 6 comment(s) 12,885
Filed under: , ,
筆記-Excel轉DataTable的NPOI簡單範例
這篇主要是寫給自己備忘的,以下為使用NPOI讀取表格Excel檔,自動轉成DataTable的簡單範例: (NPOI是什麼? 可參考 舊文 ) using System.Data; using System.IO; using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; public class NPOIHelper { public static DataTable ReadExcelAsTableNPOI( string fileName) {...
Posted 14 May 2011 07:40 AMJeffrey | 30 comment(s) 106,623
Filed under: ,
【笨問題專欄】不分大小寫的Dictionary<string, string>
今天要分享的 笨問題 是: 寫程式時偶爾會需要Key不分大小寫的Hashtable(Dictionary<string, string>),大家都是怎麼解決的呢? 我最近才頓悟... using System; using System.Collections.Generic; namespace ConsoleApplication1 { class Program { static void Main( string [] args) { //我以前都這麼處理不分大小寫的Hashtable...
Posted 19 April 2011 09:15 AMJeffrey | 14 comment(s) 18,617
Filed under: , ,
CODE-使用Mini C# Lab測試SmtpMail Client
剛好需要在不特定機器上測試透過SMTP送信,想在不安裝任何開發工具的前題下跑一小段.NET程式測試SmtpClient,我立即想到 Mini C# Lab 。 下面是使用Mini C# Lab測試SmtpClient的簡短程式,mail.To.Add加入收信者Email,mail.From為寄信者Email,設定mail.IsBodyHtml = true,mail.Body就可指定含HTML標籤的內容,mail.Subject中加入寄送時間以便區別,另外還用mail.Attachments.Add...
Posted 21 December 2010 03:15 PMJeffrey | 2 comment(s) 7,909
Filed under: ,
使用Open XML SDK讀取Excel中的文字
因專案需引用使用者提供的Excel資料,我做了些嘗試。原本是用NPOI開啟xls檔案讀取資料,後來發現NPOI似乎無法提供欄位經格式化的文字結果(例如: 使用者輸入日期,轉成"yyyy年mm月dd日"),於是將xls轉為xlsx,也嘗試了Open XML SDK做法。 參考了初步教學文件,寫了簡單的範例程式: using System; using System.Linq; using DocumentFormat.OpenXml.Spreadsheet; using DocumentFormat...
Posted 18 December 2010 10:11 AMJeffrey | 7 comment(s) 22,259
Filed under: ,
TIPS-NPOI修改Excel欄位後自動更新公式計算結果
最近專案裡,我都開始改用 NPOI 來處理Excel檔案的讀寫輸出,感覺上比Excel DOM、OLE DB for JET、甚至 CSV法 來得穩定輕巧,而NPOI功能的齊全程度更是讓我驚喜連連。 今天寫了個簡單套版程式要實現類似以下的概念: Template.xls中有寫好的公式計算兩個欄位的相加值,A3 = SUM(A1:A2) 我的程式會開啟Template.xls,將A1改成3、A2改成4,另存為Result.xls。(關於NPOI的基本介紹,可以參考MSDN上的 中文教學 ) using...
Posted 16 December 2010 06:18 PMJeffrey | 6 comment(s) 42,759
Filed under: , ,
MicroHttpServer - 用100行C#寫一個HTTP Server
有個點子,想在WinForm上跑程式模擬出Web Server功能,讓Browser或程式可以透過HTTP協定與其溝通。既然想到,就動手做看看囉! HTTP Server絕大部分的核心功能,其實都可用.NET搞定: 用 TcpListener 接受特定Port連入的TCP連線,取得 NetworkStream ,以StreamReader、StreamWriter讀取及寫入資料... .NET BCL 真是應有盡有!相較之下,以前那種基礎元件跟函式庫都得自己張羅的時代,只能用茹毛飲血來形容。 有了BCL的加持...
Posted 14 August 2010 09:23 AMJeffrey | 19 comment(s) 55,375
Filed under: , ,
反白圖檔做環保
網友山姆先生問了一個 有趣 問 題 : 如何在Excel插入(或複製貼上)時將圖片反黑,因為經常會複製一些類似Dos的黑底白字畫面,列印時相當浪費印表機碳粉,很不環保... 這個需求其實不少螢幕擷取工具已內建了現成功能,例如: SnagIt 雖然已有工具,但畢竟還是要幾個操作步驟才能搞定。想了一下,其實應用先前 修正VS2010剪貼內容 展示過的剪貼簿 篡改 修改技巧,配合GDI+豐富的圖形處理功能,自己寫應該也不難。再加上寫程式為環保貢獻心力是很有意義的事,所以我索性當成題材小練了一下武功。 以下程式我是寫成Console...
Posted 29 June 2010 09:01 AMJeffrey | 2 comment(s) 11,413
Filed under: ,
CODE-檢查伺服器時間同步
最近因為伺服器時間不同步,造成資料庫記錄時間基準不一,形成困擾。 理論上同一Domain下的主機都應會自動同步時間,但實務上偶爾就是會有出鎚的狀況。為了能快速掌握時間誤,我寫了以下的工具,可自動比對多台主機時間,將之整理成一張網頁報告,以便能快速找出伺服器時間不同步的問題。最終產出如下: 程式的運作原理是以 多執行緒 方式透過 NetRemoteTOD API 同時向多台主機取得時間。誤差判定是以計算"收到結果時間"與"結果內容時間"間差異求得(這不算精準的衡量做法...
Posted 23 April 2010 10:01 PMJeffrey | 2 comment(s) 8,606
Filed under: ,
CODE-非同步方法之同步化及逾時機制(完成回Call版)
前天寫了一篇 非同步方法之同步化及逾時機制 ,與chicken大人討論程式碼中Polling的部分(指每隔一段時間檢查一次結果的輪詢寫法),固然邏輯簡單,但效率與精確度不優,但若被呼叫的元件本身不提供"完成後主動通知"的機制,Polling雖然討厭,卻也無法避免! 若被呼叫端在完成工作時,可透過事件回呼方式通知呼叫方,則整個局勢就改觀了! 於是索性也 提筆 敲鍵練習一番,補充"完成後會回Call"情境的做法。 如下例,我們在AsyncJobClass完成工作後...
Posted 24 March 2010 09:44 AMJeffrey | 1 comment(s) 8,527
Filed under: ,
更多文章 « 上一頁 - 下一頁 »

搜尋

Go

<March 2023>
SunMonTueWedThuFriSat
2627281234
567891011
12131415161718
19202122232425
2627282930311
2345678
 
RSS
創用 CC 授權條款
【廣告】
twMVC
最新回應

Tags 分類檢視
關於作者

一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"有為的中年人"自許。

文章典藏
其他功能

這個部落格


Syndication