PIXNET Logo登入

阿尼

跳到主文

部落格全站分類:

  • 相簿
  • 部落格
  • 留言
  • 名片
  • 7月 09 週五 201021:49
  • 計算 Byte 數量

image
最近有個格式化字串的需求,是要計算已知字串的 Byte 數量,每 100 個 Byte 加上一個換行符號(不能超過100)。一開始的想法是一個 char 一個 char 去跑迴圈並計算 Byte 數。不過這樣又似乎不太妥當,想來想去,最後寫成這個樣子:

public static string SetupType(string text) {
//先去除換行字元
text = text.Replace("\r", "").Replace("\n", "");
//每行最大 Byte 數
int bytesCountEachLine = 100;
//記錄目前已處理完成的字元數
int charIndex = 0;
//最後的回傳值
string result = string.Empty;
Encoding ansi
= Encoding.Default;
byte[] textBytes = ansi.GetBytes(text);
while (charIndex < text.Length) {
//起始位置
int start = ansi.GetByteCount(text.Substring(0, charIndex)) ;
//利用 Encoding.GetCharCount 從起始位置將 100 個 Bytes 的字元一次取出
int count = 0;
if (textBytes.Length - start > bytesCountEachLine)
count
= ansi.GetCharCount(textBytes, start, bytesCountEachLine);
else
count
= ansi.GetCharCount(textBytes, start, textBytes.Length - start);
string target = text.Substring(charIndex, count);
//取出來的字串可能會大於 100 Bytes,所以需要把多餘的去掉
while (ansi.GetByteCount(target) > bytesCountEachLine) {
target
= target.Substring(0, target.Length - 1);
count
-= 1;
}
charIndex
+= count;
//最後一行不用加斷行符號
if (charIndex < text.Length)
result
+= target + "\r\n";
else
result
+= target;
}
return result;
}

(繼續閱讀...)
文章標籤

AnferneeHardaway 發表在 痞客邦 留言(0) 人氣(442)

  • 個人分類:C#
▲top
  • 6月 29 週二 201023:26
  • 改寫字串

image
剛剛看到天才少年 laneser 寫了一段程式碼,為方便說明,我稍微刪掉了一些。大致上如下:

[STAThread]
static unsafe void Main() {
string s = "123";
fixed (char* ps = s) {
ps[
0] = '3';
ps[
1] = '2';
ps[
2] = '1';
}
MessageBox.Show(
"123");
}

(繼續閱讀...)
文章標籤

AnferneeHardaway 發表在 痞客邦 留言(1) 人氣(37)

  • 個人分類:C#
▲top
  • 2月 25 週四 201016:43
  • Punycode

    網友問了個問題,我天真的認為是UrlEncode()就可以解決,直到心冷大指點後,才知道事情不是我想的那麼簡單。經過測試後,不管用什麼方法都沒辦法正確的用WebClient去抓資料,google了老半天也找不到有用的資訊。結果無意中發現這篇,看來跟這個名為punycode的東西有關,有了關鍵字,呵~~人生就變彩色的了,一下子就找到有用的文章。
(繼續閱讀...)
文章標籤

AnferneeHardaway 發表在 痞客邦 留言(0) 人氣(139)

  • 個人分類:C#
▲top
  • 12月 18 週五 200922:27
  • Copy Properties

Copy_Properties
同事問了一個問題:
      假如有兩個物件(A和B),這兩個物件分屬不同類別,且大多數的屬性都一樣,但彼此沒有繼承關係,也不能修改原始類別的程式碼。要如何快速將物件A的屬性值全部複製給物件B??
(繼續閱讀...)
文章標籤

AnferneeHardaway 發表在 痞客邦 留言(0) 人氣(27)

  • 個人分類:C#
▲top
1

熱門文章

  • (38)Ajax-HistoryPoint
  • (27)Copy Properties
  • (325)SqlDataSource Performance
  • (373)Menu - 無法選取停用的或無法選取的功能表項目
  • (21,829).pdb 的用處
  • (40)MSDN版聚 - 台北場
  • (61)2009論壇貢獻獎得獎感言
  • (1,490)SessionID重複
  • (5,312)Microsoft.Jet.Oledb.4.0 提供者並未登錄於本機電腦上
  • (32)LIKE查詢

文章分類

  • Tools (1)
  • 點點滴滴 (4)
  • C# (4)
  • Visual Studio (3)
  • MS-SQL (4)
  • ASP.NET (11)
  • 未分類文章 (1)

最新文章

  • 搬家
  • SQL 考題-1
  • 計算 Byte 數量
  • 預設程式碼樣板
  • 改寫字串
  • $create()
  • WCF - 以 IP 取代 HostName
  • Fiddler失效
  • 透過修改機碼解決IE8的SessionID共用問題
  • SQL - 考題

文章精選

文章搜尋

參觀人氣

  • 本日人氣:
  • 累積人氣: