取亂數,我想這問題應該是在簡單不過的程式,
但要取出一堆不重複的亂數...有許多效率方面的想法,
有一個是洗牌法,
想法即是先取得一個順序的牌組(陣列),
在隨機取兩個數字後將兩個位子的牌對調,
以下範例是需要進來的牌組多大,就對掉牌組的100倍次數
這CODE不一定完美,但也是一個不錯的取亂數想法。
~Shael
shael 發表在 痞客邦 留言(0) 人氣(821)
.Net 4.5專案預設即支援Unobtrusive
只要在 global.asax Application_Start 加 以下即可轉為Unobtrusive
~Shael
shael 發表在 痞客邦 留言(0) 人氣(14)
MS RequiredFieldValidator 不支援 CheckBoxList ,
只能用 CustomValidator Call Client Script 去驗證
參考了一些網站,所以衍生出以下寫法,
因jQuery的寫法比較沒有跨瀏覽器問題,所以比較建議~
不過目前寫法應該只能這樣吧...搞不好以後MS自己也會支援...不需要另外CODING
~Shael
shael 發表在 痞客邦 留言(0) 人氣(281)
於Button .click() 時加上__doPostBack();
即可對應CodeBehind的Click事件
ex:
// 這 Botton1.click 會對應到 CodeBehind 的 Button1_Click 事件
$("#button1").click(function() {
__doPostBack("button1", "");
return false;
});
shael 發表在 痞客邦 留言(0) 人氣(8)
有時常會需要用到command
做一些bat檔會需要用到以下變數,
經測試有底線的系統變數在某些系統特定條件下才可以使用
Windows系統變數
1 %SystemDrive%:系統磁碟機,預設是C:
2 %SystemRoot%:系統根目錄,預設是C:\WINNT或C:\WINDOWS
3 %SystemDirectory%:系統目錄,預設是C:\WINNT\System32或C:\WINDOWS\System32
4 %WinDir%:Windows目錄,預設是C:\WINNT或C:\WINDOWS
5 %ProgramFiles%:應用程式目錄,預設是C:\Program Files
6 %Temp%、%Tmp%:暫存檔目錄
7 %HomePath%:使用者家目錄
8 %OS%:作業系統名稱,其值固定為Windows_NT
9 %UserDomain%:包含使用者帳號的網域名稱,或者電腦名稱
10 %UserName%:使用者帳號名稱
11 %ALLUSERSPROFILE%:All Users設定檔的資料夾位置。
12 %APPDATA%:目前使用者的Application Data資料夾位置。
13 %CD%:目前的工作資料夾。
14 %CLIENTNAME%:目前使用者的NETBIOS電腦名稱。
15 %CMDCMDLINE%:處理目前命令提示字元視窗命令的cmd.exe的完整路徑。
16 %CMDEXTVERSION%:目前Command Processor Extensions的版本。
17 %CommonProgramFiles%:Common Files資料夾的路徑。
18 %COMPUTERNAME%:電腦名稱。
19 %COMSPEC%::命令提示字元視窗的解譯程式路徑,通常與%CMDCMDLINE%相同。
20 %DATE%:目前的系統日期。
21 %ERRORLEVEL%:最近執行過的命令的錯誤碼;非零的值表示發生過的錯誤碼。
22 %HomeDrive%:使用者目錄的磁碟機。
23 %HOMESHARE%:目前使用者共用資料夾的網路路徑。
24 %LOGONSEVER%:目前使用者所登入的網路控制器名稱。
25 %NUMBER_OF_PROCESSORS%:電腦的處理器數量。
26 %Path%:執行檔的搜尋路徑。
~Shael
shael 發表在 痞客邦 留言(0) 人氣(207)
使用EXCEL產生報表,再VB6時我們會使用CreateObject開始,
再以Set Nothing 結束,就OK了~
但在.NET並不是這麼簡單就可以釋放記憶體,
每執行一次,工作管理員又會產生一次EXCEL.EXE
網路上查到許多使用GC.Collect()來強制回收,
也有看到Kill Process的...
但這樣強制系統回收....總覺得這樣好像哪裡不妥,
若不到最後,我想我應該不會使用這方法去強制影響系統的運作,
而且這在Client端程式可以這樣執行,到Server端執行又不行~"~
一開始我還想說是權限問題~測了很久....
想說乾脆執行一次CreateObject,後續使用getObject重複使用該Object就好,結果...
又是Client可以,Server端不行,~"~
查到最後...是有Server.CreateObject 卻沒有 Server.GetObject
之後回歸最原始的方式,
再仔細看微軟的支援頁面,.NET 2.0之後可使用以下程式來回收記憶體
System.Runtime.InteropServices.Marshal.FinalReleaseComObject
我就從每一層結束都做FinalReleaseComObject,
結果發現,只寫以下就可以釋放EXCEL.EXE的記憶體
Dim xlapp As Excel.Application = Server.CreateObject("Excel.Application")
xlapp.Quit()
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(xlapp)
xlapp = Nothing
但只要再中間加上下列開啟檔案....
Dim xlBook As Workbook = xlapp.Workbooks.Open(wkPath & "\sample.xlsx")
xlBook.Close()
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(xlBook)
xlBook = Nothing
EXCEL.EXE就會出現在工作管理員中屹立不搖...
之後再想到根本,EXCEL的組成元素如下,
Application、Workbooks、Workbook、Worksheet、Range
所以就每一層都SET NEW 用完都做FinalReleaseComObject
每一層都需要正常開始與結束就可以正確釋放記憶體
這樣寫CODE寫得有點複雜,不過記憶體真的可以正常釋放,
只要其中一個環節沒有做到EXCEL.EXE就會在工作管理員中,
範例是讀取現有EXCEL擋,之後修改內容後關閉儲存~
Imports Excel = Microsoft.Office.Interop.Excel
Imports System.Runtime.InteropServices.Marshal
Sub Excel()
Dim xlApp As New Excel.Application
Dim xlBooks As Excel.Workbooks = xlApp.Workbooks
Dim xlBook = xlBooks.Open("D:\sample.xlsx")
Dim xlSheet As Excel.Worksheet = xlBook.ActiveSheet
Dim xlRange As Excel.Range
xlApp.Visible = False
xlApp.DisplayAlerts = False
xlRange = xlSheet.Range("A1")
xlRange.Value = 123
FinalReleaseComObject(xlRange)
FinalReleaseComObject(xlSheet)
xlBook.Save()
xlBook.Close()
FinalReleaseComObject(xlBook)
FinalReleaseComObject(xlBooks)
xlApp.Quit()
FinalReleaseComObject(xlApp)
End Sub
參考資料:http://support.microsoft.com/default.aspx?scid=KB;EN-US;q317109&#appliesto
shael 發表在 痞客邦 留言(0) 人氣(7,527)

日期:May/14/2011
行程:Worthing(沃辛)
住宿:英國友人家
今天行程也是採購、與友人聚餐,還穿插一個搭敞篷車到Brighton繞了一圈~
一早友人先帶我們去了一趟Argos,因為原本帶來的兩個行李箱,裝不下我們買的東西了XD
所以去Argos在買個行李箱,也順便買個快速店熱水壺,感覺是滿便宜的,
帶回台灣也可以用,問題一樣,就是插頭大了一點,而且需要轉換插頭,
到最後,也覺得耗電...也收起來了,電費高漲...目前煮開水都用瓦斯~
今天天氣很不錯,天空很藍,在停車場往上拍就是這般美景,
英國的天空真的很清,很乾淨~
內人英國與之前一同在英國讀書的同學相約在Worthing大街見面,準備一起吃午餐,
Worthing大街上,竟然出現這樣帶動跳的老師,
很多英國人也很開心的跟著跳~
左上角的vodafone就是我們再英國辦理£10有500MB可以用的3G手機SIM卡
這真的很方便,我們在車上無聊上網查資料都是使用這喔~
其他是我們散步拍到的照片...
警察局,為什麼有這一張呢?
因為小弟我天兵的,竟然將同學送內人的禮物提袋整個忘在Worthing的大街上@@"
之後我們只好到警察局問看看是否有好心人將提袋送到這邊來,
結果還真的完整無缺的拿回同學送內人的禮物,還好,若真的找不到,內人真的會很傷心吧...
我也會很自責~"~,到這邊,真的要給英國人的拾金不昧一個讚!
同學老公是開奧迪敞篷車的,因為我們行程沒有排到Brighton,
他們就很熱心的要開車帶我們到Brighton晃一圈,
因為我們也沒有甚麼機會搭敞篷車,就很開心地衝過去了,
Brighton真的很漂亮,可惜的是時間不夠,所以下次去英國時,再到Brighton玩吧~
上面皆是路上風景,老實說,敞篷車真的是風超大,
吹的我們都頭痛了,索性就將帽子戴起來^^"
這飯店聽說很有名?!據說,這是英國女皇住過?!
其實我也有點忘記了XD,就當是我亂介紹吧XD
這邊是Brighton最熱鬧的Piers,
太陽很大,天氣很好,雖說沙灘上沒有比基尼辣妹,
不過這樣慵懶的英國氣息也感染著我們,令人平靜~
英國同學也是台灣人,一到Brighton就去排隊買的甜甜圈,
她說這是類似家鄉台灣甜甜圈的香味~
在外依然總是想著家鄉的味道~
之後回到友人家,受到友人英式下午茶的招待,
在飯前喝著奶茶,吃點麵包,吃完晚餐後,又是一大片英式糕點,真的是滿足~
吃完晚餐後,友人帶著我們走路到附近的一家超市,
再去買點東西,我們也順便跟著去,去看看有沒有甚麼便宜可以撿,
逛完超市,天也黑了~
今天,見到內人當時在英國讀書的同學,
人都很友善,下次有機會再到英國旅遊,
我想,應該也都會再次相約見面吧~
~Shael
shael 發表在 痞客邦 留言(0) 人氣(96)
日期:May/13/2011
行程:Bath(巴斯)->Worthing(沃辛)
住宿:英國友人家
今天行程比較簡單,單純是起床享受早餐,後回Worthing與友人會合,
還有去買...iphone dock radio clock,因為內人在住宿看到一個覺得很有用,
就去找Argos買這東西,之後還真的是問到附近有一家,
因為我們買回worthing的車票也是定時優惠票,所以我們必須準時,
吃完早餐就趕快去搭公車到Argos買iphone dock radio clock,還買了兩個@@"
帶回台灣後電源需要轉接頭,電源插頭又很大~到最後iphone4換iphone5後...感覺就沒甚麼用了...
最後...還是收起來,當如果需要時鐘時....再用吧~
一樣的,餐廳是我們最喜歡的一部分,早餐一樣非常豐盛,
當然來到英國,一定是英式的先吃,看到這一盤,一整天的元氣都來了~
我們先到車站,搭公車到Argos,BATH車站一景,
之後我們買到東西後就直接搭火車準備回Worthing,
搭車回worthing的路上就是看窗外的景色,
也沒甚麼好介紹的,因為來的時候幾乎已經看過一遍了,
現在只是在看一遍~^^"
趕回到Worthing之後,我們就準備與友人吃晚餐,
晚餐吃得太快,所以都沒有拍到XD
只拍到之前內人在英國讀書時,住宿家庭的男女主人帶來的草莓蛋糕~
今天時間並不是很充裕,有許多時間花在找Argos與搭車,
剩下的時間就是內人與英國友人敘舊~聊天~
今天行程就是這樣囉~
~Shael
shael 發表在 痞客邦 留言(0) 人氣(49)

百年傳統餐廳 SALLY LUNN'S
BATH住宿Check In的經理推薦我們可以到這裡吃晚餐,
他說這一間是百年老店,可以吃到很傳統的英式晚餐,
昨天吃的時候知道,提早一點來吃有優惠,所以我們又來吃一次英式晚餐囉~
在下午5點前有優惠~一個人£12的樣子,
套餐名稱是Early Bird,應該就是早鳥優惠吧XD
餐廳擺設也是相當的有味道~
店內也擺設英國舊時的素描畫,很悠閒的感覺。
套餐還有含紅酒,左邊是紅酒杯,右邊是套餐前湯與麵包
我點的是豬肉,內人吃的是羊肉,
肉的燉的很爛,很軟,入口即化,個人覺得還不錯吃啦~
因為我們有吃的是早鳥餐,
不過含餐前酒、餐前湯、餐包、主餐,一個人只要£12,
對於物價超高的英國來說,算是很優惠的一餐了~
前一個晚上吃一樣的東西比今天還少,還比較貴哩,
吃完後,再到外面來拍照,店的外觀也很有FEEL。
歐洲人都很喜歡在戶外用餐,當然英國也不例外,
像這類的室外餐廳,還滿多的,而且也都滿漂亮的~
英國郵筒
用完餐,就慢慢散步回住宿的地方,現在看起來是滿亮的,
不過我記得已經是晚上8點多了~
時間已經晚了,當然這類店家也都關了,
看著櫥窗慢慢的東西,好想買,但口袋不夠深...只能望梅止渴...
常常聽到人家說的一句話「買不起,就把它拍回家吧!」XD
這一幕也是在旅遊書上有看到的一幕,有前景深景喔~
BATH這區的街道就是這般美景
都幾點了,太陽還不下山...影子都拉這麼長了 ^^
我們是住在BATH車站後方的山坡上,這樣爬山爬回家,雖然有點累,
不過路上還有小花可以欣賞~也是很詩情畫意~
這是我們在BATH住宿兩天的HOTEL外觀
HOTEL花園燈
HOTEL還很貼心的在玄關放上BBC報導的一周天氣,
HOTEL後花園,看起來很漂亮,但因為天色晚,氣溫低,
我們也是趕快拍拍照後就進室內了,
HOTEL的餐廳,餐廳擔心客人晚上會餓,所以也準備一些零食供顧客使用,
但...這些是要錢低~
這HOTEL的餐廳是我們最滿意的部分之一,
因為餐廳的早餐真的是~優啊!~還可以點餐,
餐廳漂亮、明亮、早餐吃到飽,選擇又多樣~
雖說位置是在BATH車站後方的山坡上,當然也是有公車,
不過還是顯得不太方便,還好,小弟與內人還算康健,
可以這樣走,若真的老人家一點,這樣爬山,可真是有點累喔~
過了很久,終於又出現一篇了...~"~
我真的是很懶的人,POST文速度真的是越來越慢了...
只能盡量囉~
~Shael
shael 發表在 痞客邦 留言(0) 人氣(134)
太偷懶都沒上來完成遊記,但看到這篇文章,不分享又很對不起自己XD
看完這篇的感想:台灣心、台灣人就是會這麼可愛~
~Shael
shael 發表在 痞客邦 留言(0) 人氣(37)