- Aug 15 Sun 2010 21:25
-
搬家
由於我的部落格一直沒什麼人氣,所以只好搬家到點部落~~未來有新文章會改po在這裡。
- Jul 22 Thu 2010 22:55
-
SQL 考題-1

考題又來了,想 SQL Statment 真的是有活化腦細胞的作用,這次題目如下:
假設有一個 TABLE 欄位如下: 日期, 學生編號, 學生姓名, 成績,可能每隔幾天有一次考試並登入成績。
請問要如何下一個SQL SELECT 查出 每個月 前5名的學生及成績?
(用單月累積 分數最高者為當月第一名)
- Jul 09 Fri 2010 21:49
-
計算 Byte 數量

最近有個格式化字串的需求,是要計算已知字串的 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;
}
- Jul 07 Wed 2010 21:09
-
預設程式碼樣板

平常用 Visual Studio 新增檔案的時候(例如:aspx、cs...),Visual Studio都會很聰明的產生出一模一樣的檔案,例如下面這張圖: 其實這是因為 Visual Studio 產生檔案時,是從一堆 Template 當中複製過來的。以上面這張圖為例,是在: C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplatesCache\Web\CSharp\1033\WebForm.zip\CodeBeside.cs
- Jun 29 Tue 2010 23:26
-
改寫字串

剛剛看到天才少年 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");
}
- Jun 20 Sun 2010 19:18
-
$create()
- Jun 08 Tue 2010 01:28
-
WCF - 以 IP 取代 HostName

網友問了個問題:WCF 建立時,服務參考的網址是顯示主機名稱,但他想用 IP 取代主機名稱,這該怎麼做呢?其實還挺簡單的,在 IIS 設定一下就行了,下面用對照的方式來看:
設定前:
- Jun 07 Mon 2010 00:05
-
Fiddler失效

這個問題存在好久了,每次在家裡用Fiddler都攔截不到瀏覽器所送出的HttpRequest資訊。由於在家寫程式多半都不是為了工作,所以也就睜一隻眼閉一隻眼,攔截不到就攔截不到,程式寫得高興就好。 結果今天為了抓某隻程式所發出的HttpRequest,走投無路之下只好乖乖想辦法排除問題,笨笨的試了一個多小時,最後才在官網上看到解決辦法。如下圖般設定就行囉!
- May 02 Sun 2010 01:43
-
透過修改機碼解決IE8的SessionID共用問題

之前發過一篇 SessionID重複 的問題。事隔多日,總算讓我找到好方法,可以透過修改機碼的方式來改變 IE 共用 SessionID 的行為。 只要在 HKCU\Software\Microsoft\Internet Explorer\Main 底下新增一個名為 TabProcGrowth 的 DWORD 值,並將其值設為 0 即可。
- Apr 19 Mon 2010 22:07
-
SQL - 考題
在網路上看到這個問題,寫起來還挺有趣的,所以記錄一下,避免老了腦袋不靈光,有興趣的朋友不如也來考考自己。 問題如下: 有一個 Table 記載著每位學生每科得的等第,等第由0到5 CREATE TABLE #Test (
STID INT, Math INT, Social INT,
Nature INT, English INT, Chinese INT,
Music INT, Physic INT, Work INT,
)
go
INSERT INTO #Test
VALUES
(9001, 5, 3, 3, 1, 0, 4, 1, 2),
(9002, 0, 2, 3, 5, 1, 4, 5, 1),
(9003, 3, 3, 4, 4, 4, 4, 2, 4),
(9004, 2, 4, 4, 3, 5, 2, 5, 4),
(9005, 4, 3, 1, 2, 4, 2, 5, 1),
(9006, 4, 3, 5, 3, 5, 2, 3, 5),
(9007, 0, 4, 1, 5, 0, 2, 5, 2),
(9008, 3, 5, 3, 1, 5, 4, 3, 5),
(9009, 3, 5, 5, 4, 4, 1, 3, 4),
(9010, 3, 4, 3, 2, 4, 0, 3, 0),
(9011, 5, 1, 1, 4, 3, 0, 0, 3),
(9012, 2, 2, 1, 3, 1, 1, 5, 2),
(9013, 4, 1, 4, 4, 3, 0, 0, 4),
(9014, 3, 3, 5, 0, 5, 2, 1, 1),
(9015, 2, 4, 0, 5, 3, 1, 0, 1)
go
STID INT, Math INT, Social INT,
Nature INT, English INT, Chinese INT,
Music INT, Physic INT, Work INT,
)
go
INSERT INTO #Test
VALUES
(9001, 5, 3, 3, 1, 0, 4, 1, 2),
(9002, 0, 2, 3, 5, 1, 4, 5, 1),
(9003, 3, 3, 4, 4, 4, 4, 2, 4),
(9004, 2, 4, 4, 3, 5, 2, 5, 4),
(9005, 4, 3, 1, 2, 4, 2, 5, 1),
(9006, 4, 3, 5, 3, 5, 2, 3, 5),
(9007, 0, 4, 1, 5, 0, 2, 5, 2),
(9008, 3, 5, 3, 1, 5, 4, 3, 5),
(9009, 3, 5, 5, 4, 4, 1, 3, 4),
(9010, 3, 4, 3, 2, 4, 0, 3, 0),
(9011, 5, 1, 1, 4, 3, 0, 0, 3),
(9012, 2, 2, 1, 3, 1, 1, 5, 2),
(9013, 4, 1, 4, 4, 3, 0, 0, 4),
(9014, 3, 3, 5, 0, 5, 2, 1, 1),
(9015, 2, 4, 0, 5, 3, 1, 0, 1)
go
- Apr 18 Sun 2010 16:59
-
偵錯模式下 Web Service 無回應

最近在使用 Web Service 時發現了一個有趣的現象,只要按 F5 進偵錯模式時呼叫 Web Service,就常常會發生逾時的情況,但是不進偵錯模式的話又可以正常呼叫。
雖然程式搬到 Server 上可以正常執行,但在開發時不能進偵錯模式實在很令人頭痛。為了解決這個問題,我把 Web Service 的 Request 交由 Fiddler 去發送,籍由這個工具來看 Request 的內容。程式碼大致上如下:
WebReference.Service1 service = new WebReference.Service1();service.Proxy = new System.Net.WebProxy("127.0.0.1", 8888);
- Apr 18 Sun 2010 03:07
-
.pdb檔案的內容

之前研究過 pdb 檔案的作用,不過沒找到可以讀取它的方法。這個問題一直擱在心頭上,總算這兩天有看到相關的文章。原來安裝 Visual Studio 的時候就會連同 DIA Dump 範例一起安裝進來。只要把這個範例的方案檔打開,編譯,接著就可以做 Dump 的動作囉! 範例的路徑是:
%ProgramFiles(x86)%\Microsoft Visual Studio 8\DIA SDK\Samples\DIA2Dump\dia2dump.sln 編譯完之後,開啟命令提示字元,將目錄切到 Debug 底下(跟 Dia2Dump.exe 同一層),然後輸入 Dia2Dump.exe "pdb檔案的路徑 + 檔名",再按下 Enter 就可以看到 pdb 的內容了。
