2010年2月25日 星期四

轉貼 C# 與 unicode 互換

在 c# 將 字串 轉換為 unicode 字串(\u....\u....)




/**
* @name StringToUnicode
*
* String To Unicode
*
*
* @param srcText [in] - the table name
*
*
*/
private string StringToUnicode(string srcText)
{
string dst = "";
char[] src = srcText.ToCharArray();
for (int i = 0; i < src.Length; i++)
{
byte[] bytes = Encoding.Unicode.GetBytes(src[i].ToString());
string str = @"\u" + bytes[1].ToString("X2") + bytes[0].ToString("X2");
dst += str;
}
return dst;
}




將 unicode 字串轉回 字串



/**
* @name UnicodeToString
*
* Unicode To String
*
*
* @param srcText [in] - the table name
*
*
*/
private string UnicodeToString(string srcText)
{
string dst = "";
string src = srcText;
int len = srcText.Length / 6;

for (int i = 0; i <= len - 1; i++)
{
string str = "";
str = src.Substring(0, 6).Substring(2);
src = src.Substring(6);
byte[] bytes = new byte[2];
bytes[1] = byte.Parse(int.Parse(str.Substring(0,2),NumberStyles.HexNumber).ToString());
bytes[0] = byte.Parse(int.Parse(str.Substring(2, 2),NumberStyles.HexNumber).ToString());
dst += Encoding.Unicode.GetString(bytes);
}
return dst;
}



轉貼自

C#字串与Unicode互相转换方法

2010年2月22日 星期一

String split in c#

傳送資料時,若資料是以string array 的方式紀錄的話,若要將這些資料傳送應該有很多種方法(待查證), 這裡先用一個簡單的方式 就是自行加入分割的字串, 接收端收到之後在用(string.split )作資料的分割

string split 的用法可以參考MSDN

一般使用字元分割到是很容易理解就不加以敘述, 這裡說明一下用 字串分割的範例

假設 自訂的分割字串符號 為 "_CCC_"

注意 StringSplitOptions 下有兩種 方法
1. none : 預設
2. RemoveEmptyEntries : 移除空白的字串在新字串陣列中


以下示範裡的 code




/// the string not split
string rawString="this_CCC_is_CCC_test";

/// Declare the split string
string[] splitString = new string[]{"_CCC_"};

/// The Goal Array
string[] theGaolaArray = rawString.Split(splitString, StringSplitOptions.RemoveEmptyEntries);



2010年2月5日 星期五

C# DateTime 格式應用

常常會需要一些隨機產生的變數,可是又不希望這些變數重複,應此第一個想到的就是使用系統的datetime 來轉換
以下是我用過得一些紀錄



1. 取得現在的時間
Using System.DateTime 這個 structure

DateTime nowDateTime = DateTime.Now;

2. 取得現在的UTC時間

DateTime nowDateTime = DateTime.UtcNow;

3. 日期格式轉字串

string sDateTime = nowDateTime.ToString("yyyyMMddHHmmss");

這個例子是將現在時間轉成一個字串,
假設現在是 2010/2/5,10:00:00 就會轉換成
20100205100000
其中像 yyyy, MM 那些符號代表的意義,可以參考 MSDN 的說明



4. 字串轉日期

常常會有機會將日期格式的資料型態轉乘文字,如利用 toString()這個函式,這時候在程式運算中有必要在將她轉成日期的格式。
就可以利用 DateTime.Parse()
Convert.ToDateTime()
這兩個函式


5. 建立日期函式

函式

DateTime dt = new DateTime(year, month, day, hour, minute, second, millisecond);
year, month, day, hour, minute, second, millisecond 都是 int 的格式,
不過要注意每個的變數範圍


DateTime dt = new DateTime(year, month, day);

Google App Engine 索引設定

google app engine(GAE) 提供了線上儲存資料的功能,不過感覺上是將每個物件紀錄在網路上,

所以若要使用 像 sql 的 Java Data Objects (jdo) 就必須建立 索引(index)
當然, python 也有一樣的方法,不過這裡介紹以java 為主

基本上,利用eclipse 的外掛開發是比較省力的,所以我的介紹還是以 eclipse 搭配 GAE 的外掛環境來說明

建立索引的方法可以利用利用GAE 自動產生或手動輸入

自動產生的話,可以先在 local 端 先吧應用程式跑一遍,就會產生了,不過若是直接傳到網路上的時候就不會自動產生了... 這點我吃了很多苦頭,所以才會有這一篇文章作紀錄

自己輸入的話
找到datastore-indexes.xml 修改就可以了

詳細介紹如下
http://code.google.com/intl/en/appengine/docs/java/config/indexconfig.html

2010年2月2日 星期二

利用eclipse 建立一個server 執行 GAE 專案

Google App Engine 可以 將編輯好得程式上傳到 google 所提供空間來執行,雖然申請一次可以提供12個 網域供 12 個不同的專案使用,但還是有點少

如何安裝 見
eclipse 安裝 google app engine

在此說明如何執行在本機端,且在同一個網段的人能夠存取這個 google app engine 的服務
而不用連線到網路


以下是簡略步驟
1: 打開專案選取右鍵


2: 選取 properties 選項



3: 選擇 Run/Debug Setting 選項



4: 選取 google app engine 的 專案



5: 選擇 要使用的 port , 若不想自己設定旁邊打勾可以自動選取,
在此設8080



6: 設定ip, 語法 :
--address = xxx.xxx.xxx.xxx

--address = hostName , hostName 取得方式可以見附圖1

確定後按下 apply 及 ok



附圖1 取得 host name 的方法,
方法當然不只一種,我這裡列出一個最簡單的方式,
進入命令提示視窗後 輸入 ipconfig /all 便會出現和網路相關的資訊



7. 會自動回到上一個頁面,按ok



8. 執行專案