顯示具有 C# 標籤的文章。 顯示所有文章
顯示具有 C# 標籤的文章。 顯示所有文章

2016/02/25

[Regex][C#] Pattern 比對的順序

假設要拆解 (A,B),C,(D,E,F),G 這樣的字串, 成為如下的結果:
(A,B)
C
(D,E,F)
G

第一個想到的會是用逗號(,)做分隔符號試試, 但得到的結果如下:
(A
B)
C
(D
E
F)
G

2015/04/10

[C#][Java] jni4net 基本使用 - Java呼叫C# 函式庫

首先, 到 jni4net 官方網站下載此套件. (我下載的是0.8.8版)
解壓縮後, 會得到三個資料夾:
  • bin: 內有 proxygen.exe 執行檔, 用來產生Java與C#程式間溝通用的Proxy.
  • lib: 包含將來執行時要用到的 .dll 與 .jar 檔.
  • samples: 顧名思義, 放的是 jni4net 的範例程式碼.
使用情境: 撰寫一個 C# 的函式庫, 讓 Java 程式可透過 jni4net 套件執行該 C# 函式庫.
Step 1: 利用 Visual Studio 建立一個名為 CSharpLib 的 C# 函式庫專案, 並簡單寫一個MainTable.cs 程式如下:

2014/09/24

[C#] Dynamic change log4net connectionString

因為遇到資料庫連線字串是要從另一個系統取得, 所以研究了一下 log4net 如何動態設定資料庫連線.

2013/01/21

[C#] Windows 目錄的長路徑與短路徑轉換

因為 Windows 的目錄/檔名允許空白字元, 所以造成寫命令列指令(ex: java)時往往要用雙引號(")包裝路徑, 以避免空白字元分隔了參數.
不過最近用了一個 SVG 轉圖的 Java 套件(SVG Rasterizer), 卻不接受雙引號框住的路徑. 反而要將路徑轉為無空白字元的短路徑才行.

2011/04/06

[C#][XPath] 模擬 XPath 的 max 與 min

在 XPath 中, 有兩個函式感覺會很常用, 但 C# 中卻沒 support. 那就是 max() 和 min().
少了這兩個函式, 每次想找 xml 資料中的最大/最小值, 就只能用 Linq 或是 Select 出所有標籤後, 在程式中去一個個比對.
其實 XPath 只要轉個彎, 就能做出類似的功能.

2011/01/27

[XPath][C#] 利用 XPath 的 contains 查詢特定的元素

透過 .Net 處理 XML 時, 有時會想要類似 SQL 裡的 IN (‘a’, b’, 'c’) 的查詢方式.
查一下 w3schools 的 XPath 函式庫, 可以發現一個 function 還蠻符合的:
fn:index-of((item,item,...),searchitem)
只是一套用到程式中, 就會產生以下的 Exception:
Namespace Manager or XsltContext needed. This query has a prefix, variable, or user-defined function.
發生此問題的原因在於 .Net 並未完全支援 XPath 的函式, 有興趣的可以參考這個網址.

2010/08/18

[C#][Java] Excel 日期欄位的數值轉換

在 Excel 中, 如果將儲存格的資料設定至 "日期", 就可以輸入一個數字表示日期. (下圖)
儲存格格式
也因為 Excel 用數字表示日期, 所以有些 API 在讀取 Excel 裡的儲存格資料時, 會讀出一個數字的字串, 而不是一般預期的日期字串.

2010/08/06

[C#][Java] 處理讀取 XML 時發生的 The entity "xxx" was referenced, but not declared 例外

在XML的應用上, 有時會處理到一些無預期的資料, 例如以下的 sample:
<?xml version="1.0" encoding="UTF-8" ?>
<message>
  <from>yilin</from>
  <content>copyright &copy; 2008  Power by Test site</content>
<message>


[C#] XmlDocument 搭配 Linq 與 XPath

一般最常搭配 XML 用來查詢資料的技術是 XPath . 不過 .Net 僅支援到 XPath 1.0 , 有時想在 XPath 中加上日期函式的判斷都不行.
再加上若使用了 XPath 的函式或一些判斷式後, 整個 XmlDocument 的查詢效能會變慢. (參考以下的例子)
本文章所使用的 XML 內容 (ad.xml : 紀錄一些廣告圖與連結):

[C#] 從 MySQL 轉資料至 MS SQL Server (SqlBulkCopy)

使用套件: MySQL Connector/Net 6.1 (其他套件可以在此 下載)
因為是大量的資料搬移, 所以採用 .Net 2.0 的 SqlBulkCopy .
連線字串的部分可以到這個網站找: http://www.connectionstrings.com/.
以下是我使用的連線字串:

[C#] .Net Remoting 事件派送

過去使用 .Net Remoting 大多都只用到 [C#] .Net Remoting 基本說明 (使用 Interface 和 組態檔) 所述的架構.
不過 .Net Remoting 還有一種事件派送的架構, 就是讓 Client 可向 Server 註冊事件, 當 Server 有事件發生時, 再通知 Client. (大多都以聊天室為例子)
這樣的架構對我來說, 可以應用在派送網站資料 (包括: 圖檔, RSS 資料, 等).
假設現在網站供使用者訂閱的新聞 RSS 資料是放在資料庫裡, 而網站伺服器共有三台 (NLB).
若直接讓這三台網站伺服器各自從資料庫中讀取資料, 其讀取次數將會是 [網站數] * [RSS 頻道數] . (如果沒加入網頁快取機制, 可能要再乘上 [使用者連線數] )

[C#] .Net Remoting 基本說明 (使用 Interface 和 組態檔)

在說明 .Net Remoting 前, 先推薦 Ingo Rammer 的書: http://www.thinktecture.com/Resources/Books/default.html
我買的是 "Advanced .NET Remoting" 初版, 寫得蠻不錯的, 範例也說得很清楚.
本篇主要說明 .Net Remoting 基本的設計方式與建議的做法, 希望能讓初學者能有一個基本的設計概念, 並避免一些常見的錯誤.

2010/08/02

[C#] 用 iTextSharp 讀寫 pdf 檔中的 XMP (metadata) 資訊

由於工作上需要將 pdf 檔案依政府的要求, 將分類檢索的資訊加註於 XMP 中, 所以才會開始研究這部分.
不太懂分類檢索的人可以參考 此網頁 中的資訊.
開發工具與環境:

2010/07/30

[C#] 讀取圖檔中的 GPS 基本資訊

由於現在很多 Google Map 的應用, 主要用到圖片的 GPS 資訊不外乎緯度, 經度, 高度, 版本.
所以本篇僅說明如何利用 .Net 本身的 Library 從圖檔中取出這些資訊.
不過, 若圖檔本身未包裝這些資訊進去, 程式本身亦不可能讀到.
在說明如何取得這些資訊前, 請記得參考以下資訊:

[C#] 在 .Net 程式中呼叫 Java 的 Web Service

先前測過 Java 中呼叫 .Net 的 Web Service (here), 現在反過來, 在.Net 中呼叫 Java 的 Web Service.
環境說明:
  • Java 開發工具: Netbeans 6.5.1
  • Java Web Server: Tomcat 6.0.18
  • Java Web Service 套件: JAX-WS 2.1

2010/07/28

[C# & Java] .Net 加密 (DESCryptoServiceProvider) VS. Java 解密

前言: 這邊只列出我工作上有遇到的情況, 並未對所有的加解密做很完整的舉例/說明.
        不過如果有人能提供其他情況, 我是可以試著去解看看.
情境: 在 .Net 中, 利用 DESCryptoServiceProvider 進行加密. 加密的 Mode 為 ECB, Padding 為 None, Zeros 與 PKCS7.

[c#] Regular Expression 抓取/取代特定資料的說明

在網路上常見到一些想用 Regular Expression 取資料的問題.
有些解答看起來很複雜, 實際上只要一個一個 pattern 拆解, 就不難發現道理其實很簡單.
以下的例子將視情況進行補充:

[C#] 利用 Regex 查詢 Html/Xml 標籤中的屬性值

作用: 取得 HTML 或 XML 內容中, 某個標籤下所指定的屬性值.
輸入參數:
  • strHtml(string): HTML 或 XML 的內容.
  • strTagName(string): 標籤名.
  • strAttributeName(string): 屬性名.

[C#] 使用 Regex 將 0123456789 轉成中文

有時在處理數字的顯示時, 會有一種需求是希望將 "第123期" 轉為 "第一二三期", 或是將其轉為 "第壹貳參期".
像這種一對一的轉換, 有一種寫法如下:

[Java] 在 Java 程式中呼叫 .Net 的 Web Service

開發工具:
  • Java: Netbeans6.5 (plugins: Web Services)
  • dotNet: Microsoft Visual Studio 2008
dotNet 部分 (Web Service Server) :
  1. 透過 VS2008 在網站 (Ex: MyTest) 中建立一個名為 HelloWs.asmx 的 Web 服務.
    HelloWs.cs 的程式碼如下: