發表文章

目前顯示的是 8月, 2015的文章

[C# .Net] 是否需要用 BufferedStream 當做 FileStream 的緩衝?

最近要寫個 console application,需要讀取很大的文字檔(>500MB),於是拜了一下估狗大神,看看是否有前人的經驗可供依循。 Filestream and BufferedStream @ MSDN Blogs 找到了上面這個連結,簡單的說 BufferedStream 比較像是提供給自訂或是第三方的 stream implementation 用的,.Net Framework 自己的 Streams 都有內建 BufferedStream 的邏輯所以不需要再包一層。

[C# .Net] 因應資料庫Byte長度,修改中英混雜的字串長度

原始問題:VARCHAR(50 Byte) 的資料欄位,但要傳入的資料很多都超過這個長度,而且有中、英混雜。 簡單解法: string inputText; inputBytes = System.Text.Encoding.GetEncoding("Big5").GetBytes(inputText); string postprocessText = inputBytes.Length > 50 ? System.Text.Encoding.GetEncoding("Big5").GetString(inputBytes, 0 50) : inputText; 再用處理過的 postprocessText 傳進資料庫即可。  衍生問題: 1.中文字可能會被截斷,本例中的使用者不要求,故截斷無妨,若使用者會在意,就不能直接用 GetString() 這個方法簡單完成;有個笨方法是用 String.SubString() 一個一個字元往後延伸,不斷計算每次延伸以後的 ByteLength,若是超過就回傳上一個 SubString 當做結果,不知道有沒有更好的解法。 2.有人說用 Encoding.Default 在中文系統會有問題,建議使用 GetEncoding("Big5"),這部份我不是很確定問題發生的原因為何。