2009年12月22日 星期二

javascript日期檢查

相關網址:JAVAScript中使用正則表達式檢測日期格式


<script type="text/javascript">
//彭嘉宏的日期格式檢查(使用正則式)
function dateVerify(date){
var reg = /^(\d{4})([\/,-])(\d{1,2})\2(\d{1,2})$/;
var r = date.match(reg);
if(r==null) return false;
var d= new Date(r[1], r[3]-1,r[4]);
var newStr=d.getFullYear()+r[2]+(d.getMonth()+1)+r[2]+d.getDate();
date=r[1]+r[2]+((r[3]-1)+1)+r[2]+((r[4]-1)+1);
return newStr==date;
}
//ChanPing的日期格式檢查(使用Date()判斷)
function dateVerify2(date){
var d= new Date(date.split("-").join("/"));
var r= date.split("-").join("/").split("/");
return d.getDate()==r[2]; //判斷日
}
</script>
<input type="text" name="t1" style="background-color:#FFFFFF;" value="2009-02-30" />
<input type=button value="判斷日期dateVerify()" style="color=blue; font-size=10pt;width=130pt" onclick="alert(this.value+' is '+dateVerify(t1.value))" >
<input type=button value="判斷日期dateVerify2()" style="color=blue; font-size=10pt;width=130pt" onclick="alert(this.value+' is '+dateVerify2(t1.value))" >

2009年11月18日 星期三

ASP 在 IE瀏覽器中,Session遺失問題的處理

參考網址:http://support.microsoft.com/kb/323752


情況:
在IE瀏覽器內無法正常取得Session值,但在Firefox內卻可以正常的取出該Session值。

處理參考一 ( 在ASP程式內標頭加入下面語法 )
response.expires = 0
response.expiresabsolute = Now() - 1
response.addHeader "pragma","no-cache"
response.addHeader "cache-control","private"
response.addHeader "P3P","CP='CAO PSA OUR'"
response.CacheControl = "no-cache"

處理參考二 ( 在IIS內設定 [HTTP表頭] )
1. 按一下 [ 開始 ]、 按一下 [ 執行 ],然後再輸入 inetmgr ]。
2. 在 [左邊的瀏覽] 頁面按一下 [適當的檔案或目錄,在您想要新增標頭,以滑鼠右鍵按一下的檔案,然後按一下 [ 內容 您網站上]。
3. 按一下 [ HTTP 表頭 ] 索引標籤。
4. 在 [ 自訂 HTTP 表頭 ] 群組方塊中,按一下 [ 新增 ]。
5. 輸入 自訂標頭名稱(C):, P3P ,然後輸入 自訂標頭值(U):, CP="CAO PSA OUR"。

下列為參考網址內截出的內容:(為避免網址遺失的問題)
徵狀
如果您實作一個 FRAMESET 其圖文框指向您的夥伴或內部網路上網路上的其他網站,但您使用不同的最上層網域名稱您可能會發現在 Internet Explore...
loadTOCNode(1, 'symptoms');

如果您實作一個 FRAMESET 其圖文框指向您的夥伴或內部網路上網路上的其他網站,但您使用不同的最上層網域名稱您可能會發現在 Internet Explorer 6 中您嘗試在這些圖文框中設定任何 Cookie 會遺失。 這是最常遇到為遺失的動態伺服器網頁 (ASP) 」 或 「 ASP.NET Web 應用程式中的工作階段狀態。 您嘗試存取 工作階段 物件,您希望存在,而傳回空白的字串中的變數。您也看到這個問題在圖文框的內容中如果您的網頁使用的網域名稱系統 (DNS) 名稱之間使用的網際網路通訊協定 (IP) 位址的替代。
發生的原因
Internet Explorer 6 引入隱私喜好設定 (P3P) 專案的平台的支援。 P3P 標準筆記如果一個 FRAMESET 或父視窗的參照另一個網站內...
loadTOCNode(1, 'cause');

Internet Explorer 6 引入隱私喜好設定 (P3P) 專案的平台的支援。 P3P 標準筆記如果一個 FRAMESET 或父視窗的參照另一個網站內一個框架或子視窗,子網站會被視為第三方內容。 網際網路檔案總管會使用預設的隱私權設定 中 的無訊息式地拒絕寄件者的協力廠商網站的 Cookie。
回此頁最上方
解決方案
您可以在 P3P 壓縮原則標頭加入您的子內容,而您可以宣告沒有惡意的動作會執行與使用者的資料。 如果 Internet Explorer 偵測到令人滿意的原則,...
loadTOCNode(1, 'resolution');

您可以在 P3P 壓縮原則標頭加入您的子內容,而您可以宣告沒有惡意的動作會執行與使用者的資料。 如果 Internet Explorer 偵測到令人滿意的原則,Internet Explorer 會允許設定 Cookie。請造訪下列 MSDN 網站令人滿意,並不令人滿意的原則程式碼的完整清單: 在 Internet Explorer 6 中的隱私權http://msdn.microsoft.com/workshop/security/privacy/overview/privacyie6.asp (http://msdn.microsoft.com/workshop/security/privacy/overview/privacyie6.asp) 簡單的壓縮原則符合此條件,如下:P3P: CP="CAO PSA OUR"
這個程式碼範例會示範您的網站提供您自己的連絡人資訊 (CAO),任何分析的資料是唯一"pseudo-analyzed 」,表示資料給您的線上人物代表,而非您實體的身分 (PSA),連接的並且您的資料未提供任何外部機構,這些機構使用 (OUR) 的存取。您可以設定此標頭,如果您在 ASP 網頁中使用 Response.AddHeader 方法。 在 ASP.NET 中,您可以使用 Response.AppendHeader 方法。 您可以使用 [IIS 管理嵌入式管理單元 (inetmgr),若要新增至靜態的檔案。 請遵循這些步驟來此標頭加入靜態檔案:
6. 按一下 [ 開始 ]、 按一下 [ 執行 ],然後再輸入 inetmgr ]。
7. 在 [左邊的瀏覽] 頁面按一下 [適當的檔案或目錄,在您想要新增標頭,以滑鼠右鍵按一下的檔案,然後按一下 [ 內容 您網站上]。
8. 按一下 [ HTTP 表頭 ] 索引標籤。
9. 在 [ 自訂 HTTP 表頭 ] 群組方塊中,按一下 [ 新增 ]。
10. 輸入標頭名稱, P3P ,然後壓縮原則的字串輸入 CP =...,其中"...是您的壓縮原則的適當程式碼。
或者,Internet Explorer 使用者可以修改其隱私權設定,這樣會提示他們接受協力廠商的內容。 下列步驟顯示如何修改隱私權設定:
1. 執行的 Internet Explorer。
2. 按一下 [ 工具 ],然後按一下 [ 網際網路選項 。
3. 按一下 [ 隱私 ] 索引標籤,然後按一下 [ 進階 ]。
4. 按一下以選取 [ 覆寫自動 Cookie 處理 ] 核取方塊。
5. 若要以便 ASP 和 ASP.NET 工作階段 Cookie 設定按一下以選取 [ 永遠允許工作階段 Cookie ] 核取方塊。
6. 若要接收任何類型的第三方 Cookie 提示,] 按一下 [ 提示 第三方 Cookie ] 清單中。

2009年10月15日 星期四

SQL處理中英文字串長度的範例

SQL處理中英文字串長度的範例

-- 計算中英文字串長度
DECLARE @string varchar(50)
set @string='一二三456七八9十'
select @string '字串', len(@string) '中英字數', datalength(@string) '資料長度', datalength(@string)-len(@string) '中文字數'

-- 截取中英文字串長度
DECLARE @string varchar(50), @l int
set @string='一二三456七八9十'
set @l=8
select substring(@string,1,@l) '取字數', case when datalength(@string)>8 then convert(varchar(8),@string)+'...' else convert(varchar(8),@string) end '取資料數'
select substring(@string,1,@l)
-- 無法使用下列寫法,主要在「convert(varchar(@l),@string)」內的『varchar(@l)』括號內只可使用數值,無法使用變數 >"<。
select substring(@string,1,@l), case when datalength(@string) > @l then convert(varchar(@l),@string)+'...' else convert(varchar(@l),@string) end

2009年10月14日 星期三

EXCEL的資料轉置(橫轉直)

EXCEL的資料轉置(橫轉直, 直轉橫)



常會有要整理資料表,要將原本橫向的資料欄位改為直向的資料顯示又常會忘記,所以,特寫這篇圖文註記一下 ^^!!!

1.範例資料如下: 要將 A1..E4的資料轉成直式顯示。

2.選取A1..E4的資料。按右鍵 ->「複製(C)」將資料複製。

3.點擊A6位置。按右鍵 -> 「選擇性貼上(S)...」。
4.開啟『選擇性貼上』框後,勾選「轉置(E)」後,按下「確定」鈕。

5.如下圖A6..D10的顯示,即完成了資料的轉向了^^。

2009年10月9日 星期五

暫存表判斷 / 產生日期暫存表

參考網址:http://www.blueshop.com.tw/board/show.asp?subcde=BRD20050616212814W4M&fumcde=FUM20041006152735ZFS


-- #暫存表判斷並刪除
IF OBJECT_ID('tempdb..#tmpDate') IS NOT NULL
DROP TABLE #tmpDate
go

DECLARE @sd datetime --開始日期
DECLARE @ed datetime --結束日期
DECLARE @d1 datetime --處理日期
DECLARE @d2 varchar --處理民國日期

set @sd='2008-09-11'
set @ed='2009-01-14'
set @d1=@sd

-- 先轉一筆資料入 #tmpDate 暫存表 drop table #tmpDate
select D_date '西元日期', weeknum '星期別', convert(varchar(4),DATEPART ("year", @d1)-1911)+right(replace(D_date,'-','/'),6) '民國日期' into #tmpDate
from(select convert(varchar(10),@d1,121) D_date, DATEPART ( "weekday" , @d1 )-1 weeknum ) a
select @d1=DATEADD("day" , 1, @d1 ) --加一天

WHILE (@d1 <= @ed) BEGIN insert into #tmpDate select *, convert(varchar(4),DATEPART ("year", @d1)-1911)+right(replace(D_date,'-','/'),6) C_date from(select convert(varchar(10),@d1,121) D_date, DATEPART ( "weekday" , @d1 )-1 weeknum ) a select @d1=DATEADD("day" , 1, @d1 ) END -- 顯示暫存表
select * from #tmpDate
order by [西元日期]

2009年7月14日 星期二

SQL定序衝突問題處理

SQL語法查詢,發生「定序衝突問題」時,訊息如下:

「無法解析 equal to 作業中 "Chinese_Taiwan_Stroke_CI_AS" 與 "Chinese_Taiwan_Stroke_CI_AS_WS" 之間的定序衝突。」

這時必須將相關的資料定序調整,使用的方式如下:

原條件為
a=b

修改後為
cast(a as varchar)COLLATE Chinese_Taiwan_Stroke_CI_AS =cast(b as varchar)COLLATE Chinese_Taiwan_Stroke_CI_AS

將定序調整一致後,就不會有問題了。

2009年7月2日 星期四

SQL小數四捨五入範例

-- 四捨五入範例
-- 使用「numeric 型態」做小數四捨五入進位處理
--------------------------------------------------------------------------------------------

declare @a1 float, @b1 float, @c1 float, @d1 float, @e1 float
declare @a2 float, @b2 float, @c2 float, @d2 float, @e2 float
/*設定變數初值*/
select @a1 = 0.334, @a2 = 0.335
select @b1 = 0.444, @b2 = 0.445
select @c1 = 0.554, @c2 = 0.455
select @d1 = 0.664, @d2 = 0.465
select @e1 = 0.774, @e2 = 0.475

select @a1 a, @b1 b, @c1 c, @d1 d, @e1 e
select @a2, @b2, @c2, @d2, @e2
print '使用 numeric 型態做小數四捨五入進位處理'
select convert(numeric(5,2),@a1), convert(numeric(5,2),@b1), convert(numeric(5,2),@c1), convert(numeric(5,2),@d1), convert(numeric(5,2),@e1)
select convert(numeric(5,2),@a2), convert(numeric(5,2),@b2), convert(numeric(5,2),@c2), convert(numeric(5,2),@d2), convert(numeric(5,2),@e2)

--------------------------------------------------------------------------------------------
-- 整數相除的小數處理範例
--------------------------------------------------------------------------------------------

declare @a int
declare @b int
declare @c int, @d int, @e int
/*設定變數初值*/
select @a = 1000
select @b = 3
select @c = 43
select @d = 6
select @e = 7

select @a/@b t1, @a/@c t2, @a/@b*1.0 t3, 1.0*@a/@b b, 1.0*@a/@c c, 1.0*@a/@d d, 1.0*@a/@e e
, convert(numeric(5,2),(1.0*@a/@b)) b1
, convert(numeric(5,2),(1.0*@a/@c)) c1
, convert(numeric(5,2),(1.0*@a/@d)) d1
, convert(numeric(5,2),(1.0*@a/@e)) e1

2009年3月19日 星期四

輸入法由注音改為倉頡先出來

輸入法由注音改為倉頡先出來





緣起:
我是一個倉頡打字的人,或許你也跟我一樣偶而會有拆不出字碼,只好改注音輸入,然後,眼,盯著鍵盤、口中不斷的發著要拆的字音,最後,好不容易打出要拆的注音符號。這是時而發生的事,所以,我們也會增加一個「注音」輸入法,但,問題來了,「注音」每次都在我「英數」和「倉頡」輸入法中間擋住,就一定還要再切換一下才會跳到我可愛的「倉頡」輸入法上來。天呀!!死微軟幾時才能讓Windows可以聰明一點,我要「倉頡」先出來啦!! >"< 遍巡google都找不到可以解決我問題的方法,最後,也不可考了,下列是我目剈前找到可以改善我問題的解決方法。直接改 regedit 系統設定,總算ok了。在這分享給跟我有一樣困擾的人。 ^^

多年後的發現:
機碼路徑:
HKEY_USERS\S-1-5-21-1547161642-412668190-1801674531-500\Keyboard Layout\Preload
設定的資料調整一下也許可以令人滿意!!(調好記得要重開機一下)





Windows98 登錄編輯器

機碼名稱:
HKEY_LOCAL_MACHINE\
System\
CurrentControlSet\
Control\
Keyboard Layouts\
E0010404
==>E0010404
名稱 資料
-------------------------------------
IME file PHON.IME
layout file kbdus.kbd
layout text 注音

==>E0020404
名稱 資料
-------------------------------------
IME file CHAJEI.IME
layout file kbdus.kbd
layout text 倉頡


將上列的 E0010404 和 E0020404 內的資料互換;
重開機後 倉頡輸入法 將在 注音輸入法 之前

==============================================
WinXP SP3 20090127
==============================================
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Keyboard Layouts\
==>E0010404
名稱 資料
-------------------------------------
IME file phon.ime
Layout Display Name @%SystemRoot%\system32\input.dll,-5066
layout file KBDUS.DLL
layout text 中文 (繁體) - 注音

==>E0020404
名稱 資料
-------------------------------------
IME file chajei.ime
Layout Display Name @%SystemRoot%\system32\input.dll,-5067
layout file KBDUS.DLL
layout text 中文 (繁體) - 倉頡

將上列的 E0010404 和 E0020404 內的資料互換;
重開機後 倉頡輸入法 將在 注音輸入法 之前

2009年3月18日 星期三

MS SQL 資料表迴圈範例

print '資料表迴圈處理'

--產生暫存資料表 #score
if exists(select * from tempdb.dbo.sysobjects where id = object_id('tempdb.dbo.#score') )
drop table #score

create table #score (
sno varchar(10), --學號
class varchar(10), --科目
num int --分數
)
insert into #score
select '001', '國', 80
union select '001', '英', 90
union select '001', '數', 55
union select '002', '國', 50
union select '002', '英', 60
union select '002', '數', 75
union select '003', '英', 98
union select '003', '數', 59
union select '004', '國', 88
union select '004', '英', 98
union select '005', '國', 58
union select '005', '數', 69
union select '006', '國', 78
union select '006', '英', 84
union select '006', '數', 59

--select * from #score

print '資料表迴圈處理顯示'
DECLARE score_cursor CURSOR
FOR
SELECT distinct sno, class, num
FROM #score
order by sno, class

OPEN score_cursor
DECLARE @sno varchar(10) -- 學號變數
DECLARE @class varchar(10) -- 科目
DECLARE @num int -- 分數

FETCH NEXT FROM score_cursor INTO @sno, @class, @num
WHILE (@@FETCH_STATUS <> -1)
BEGIN
IF (@@FETCH_STATUS <> -2)
BEGIN
PRINT @sno+','+@class+','+convert(varchar(10),@num)
END
FETCH NEXT FROM score_cursor INTO @sno, @class, @num
END
CLOSE score_cursor
DEALLOCATE score_cursor

2009年2月27日 星期五

二技同學會--報名(3/21)

二技同學會
時間:2009-03-21(六) 中午聚會(約 11:30 到場)
地點:楊董家倉庫(桃園縣平鎮市振平街111號)


當天菜單

費用:300元
人員:南亞夜資二乙班人員 (歡迎攜伴參加)

歡迎協辦人員在09:00-10:00到場協助
也歡迎大家贊助什麼水果冷飲檳榔的(楊董提)

參加人員請在下面加上意見打上自己的別名(別太難懂嘿!!)

二技同學會--MSN

目前二技同學的MSN,因阿吉的發起大家都加入的MSN群。
在26日的白天經過大家的努力,己經有十幾個人加入並上線了。
白天的訊息氣氛還蠻熱鬧,有點回到學校的感覺;
晚上回到家再上線看,發現在線的同學掉了不少,可能工作了一天大家都累了吧!!
老實說同學很久沒有見面,在MSN看著其它同學打的訊息,也可以感覺到一些存在。

ps.目前M群還有一些問題:
1.這個M群的網站如果要登入的話,還要再留一次資料。(我還有所疑慮)
2.M群不知道會不會發生,別人知道M群的帳號就可以進來了。(因為只想保留二技的同學就好)
3.如果真的不小心給其它人跑進來我們這一群的話,是否可以「封鎖」。

2009年2月26日 星期四

二技同學會--進度

903242223
同學會各相片網址:
阿嬌提供
ChangPing提供
小吉提供

90321
同學會順利進行,到場同學15員。^^

903101500
msn 曜聰 加入

903100900
同學會菜單出爐,網址如下:
http://youngchi65.spaces.live.com/

903091000
目前有報名的只到3/3的銘賢。
報名小計11員:ChangPing、楊奇、育如、小吉、訓仲、伯達、阿吉、美雲、俊杰、阿嬌、銘賢。
歡迎大家還沒報名的可以繼續上線報名。

903021950
在報名網址增加「地點」的地點連結,以方便同學查看。

903021130
目前已報名人數六員,歡迎大家快快來報名喔!!

903021100
msn 素卿加入

902272200
msn 小丁加入

902272150
訂定同學會日期、時間、地點及報名方式(http://cp0501.blogspot.com/2009/02/321.html)

902272130
連絡中華、羅

902271900
msn增加 兆俊

902271700
msn增加 小吉、阿貴上線

902271200
msn增加 胖、伯達、小朱 三員上線

902261700
目前msn 連絡到的人
楊奇、阿嬌、小樹、澄平、阿吉、俊杰、育如、美雲、小易、寶如、文燦、小沈 共12名

902260900
MSN 同學會討論,與會人員:
楊奇、阿嬌、小樹、澄平、阿吉、俊杰、育如、美雲

902260020
跟楊董討論辦個二技同學會

二技同學會--緣起

90226
淩晨跟久未連絡的楊董msn提起要請他幫看房子木作的問題,想起班上畢業後,很像也沒有辦同學會的,頂多就幾個固定的同學有在連絡出來聊天的而己。所以,想到就來辦個同學會吧。看可以找多少人來一起聚一聚。
msn完後,看了看書架上的畢業紀念冊((嚇)不是二技的,哪是二專的==!!!)。想不起來二技是不是有畢業紀念冊了。
唉!!「二專的紀念冊」加減還是看了一下,都過了這幾多年,跟本就沒有還在連絡的同學了嘛!!(失敗!!)。等二技的結束後,再看看二專的好了==!。

目前想到的名單格式
姓名 別名 連絡電話 msn 即時通 mail信箱

剛順手加了一下「楊董」的部落格,就在旁邊的「友善連結」,有空大家去哪看看!!