Pages

2013-09-29

清除Android的檔案關聯

若你有勾選Android下預設開檔的應用程式時,若要清除這樣的檔案關聯:

Default Open

可以在「設定/應用程式/項目內容」清除這樣的檔案關聯。

Default Clean

2013-09-23

SQL去除欄位前後空白及斷行字元

SQL 中的 TRIM 函數是用來移除掉一個字串中的字頭或字尾。最常見的用途是移除字首或字尾的空白。這個函數在不同的資料庫中有不同的名稱:

MySQL: TRIM(), RTRIM(), LTRIM()
Oracle: RTRIM(), LTRIM()
SQL Server: RTRIM(), LTRIM()

SQL Server及Oracle沒有TRIM()函數,因此可用下列的語法清除:

-- SQL去除斷行字元 (1st)
UPDATE [Donor]
SET [DonorList] = REPLACE(([DonorList]), CHAR(13) + CHAR(10), '');

-- SQL去除前後空白 (2rd)
UPDATE [Donor]
SET [DonorList] = LTRIM(RTRIM([DonorList]));

而UI裏該欄位也要在異動資料時,自動去除斷行及空白字元。

// C#去除斷行及空白字元
this.ctrlDonorList.Text = this.ctrlDonorList.Text.Trim('\r', '\n', ' ');

如此內服外敷,即可藥到病除。

2013-09-12

VMware Gateway IP為指定網段.2

VMware的NAT設定,其虛擬子網段的Gateway IP應該要指定為.2,而設定從.1開始,就會發生間歇性DNS斷線的靈異現象。當然,這是經過自己血淚的測試後,才會去找官方文件一探究竟。

Gateway IP

原來VMware虛擬網段的規則是:「The range from 192.168.x.3 - 127 can be used for static ip. 128-254 is the default VMware DHCP range, .1 is the host adapter and .2 is the NAT device.」。既然VMware官方風格約定成俗,若自己硬要自行規劃,就容易跟內定的值相衝突,踩到地雷而自悶了。

2013-09-01

中文數字國字大寫轉換

財務報表程式常會遇到將金額轉換成中文國字大寫的需求,這類的處理邏輯直接上網搜尋別人寫的程式碼比較快,連研究裏頭的程式邏輯都懶了。

Chinese Number

微軟有提供「Microsoft Visual Studio International Feature Pack 2.0」元件可以處理這一塊,但它有301轉換語意的bug,而且是2009年的作品,沒再更新了。

網上找了別人分享的語法,測試後可行。但裏頭邏輯寫得很複雜難懂,暫時將就。

Mess Code

待後來有時間研究想整理上面的程式碼時,覺得應該有更好的作法,搜尋下發現更洗鍊優美的寫法。看到這樣優美的Code,很難說服自己「將就」使用混亂的Code。

Good Code

作者的原始轉換程式碼在處理大金額時單位呈現有些小問題,我修正後回饋至其回文串裏。為了搭配合作者優美的程式寫法,修正碼中的搜尋移除重複的演算法,也特別洗鍊。