VS2010 有提供 JavaScript 的 Debug 功能,這我知道。但,為何我的 VS2010 就是沒看到呢?
原來,是我電腦預設的瀏覽器,已經變成 Chrome 了。
試著將 IE 改成我的預設瀏覽器後,這問題終於解決。
首先打開 IE,並在[工具]-[網際網路選項]-[程式集],將預設網頁瀏覽器的按鈕(設成預設值)壓下,就可以將 IE 變成預設瀏覽器了。
2011年4月29日 星期五
2011年4月27日 星期三
.Net 提供的 Path 類別
在檔案上傳時,隨時會需要組檔案路徑、檔案名稱的需求,而 .Net 提供了 Path 類別,可以讓我們輕鬆地完成。以下整理了網路蒐集而來的用法,可以很快地瞭解到如何使用 Path。
需引用的命名空間:
System.IO;
string strPath = @"D:\myUpload\file01.txt";
//取得完整路徑
Path.GetFullPath(strPath); → D:\myUpload\file01.txt
//取得根目錄
Path.GetPathRoot(strPath); → D:\
//取得目錄名稱
Path.GetDirectoryName(strPath); → D:\myUpload
//取得檔名
Path.GetFileName(strPath); → file01.txt
//取得檔名(不含副檔名)
Path.GetFileNameWithoutExtension(strPath); → file01
//取得副檔名
Path.GetExtension(strPath); → .txt
//變更副檔名
Path.ChangeExtension(strPath, "jpg"); → D:\myUpload\file01.jpg
//結合路徑(前面路徑後面有無倒斜線都沒差)
Path.Combine("D:\myUpload", "test.jpg"); → D:\myUpload\test.jpg
Path.Combine("D:\myUpload\", "test.jpg"); → D:\myUpload\test.jpg
//建立並取得唯一的暫存檔完整路徑
Path.GetTempFileName(); → C:\Users\paladin_adm\AppData\Local\Temp\tmp3723.tmp
//取得目前系統的暫存資料夾
Path.GetTempPath(); → C:\Users\paladin_adm\AppData\Local\Temp\
//取得隨機檔案名稱
Path.GetRandomFileName(); → xib2n5aq.n5j
針對不同的檔案名稱測試
-------------------------
Input:cat.aspx
Result:
GetFileName: cat.aspx
GetFileNameWithoutExtension: cat
GetDirectoryName:
-------------------------
Input:really-long-page.aspx
Result:
GetFileName: really-long-page.aspx
GetFileNameWithoutExtension: really-long-page
GetDirectoryName:
-------------------------
Input:test.aspx
Result:
GetFileName: test.aspx
GetFileNameWithoutExtension: test
GetDirectoryName:
-------------------------
Input:invalid-page
Result:
GetFileName: invalid-page
GetFileNameWithoutExtension: invalid-page
GetDirectoryName:
-------------------------
Input:something-else.aspx
Result:
GetFileName: something-else.aspx
GetFileNameWithoutExtension: something-else
GetDirectoryName:
-------------------------
Input:Content/Rat.aspx
Result:
GetFileName: Rat.aspx
GetFileNameWithoutExtension: Rat
GetDirectoryName: Content
-------------------------
Input:http://dotnetperls.com/Cat/Mouse.aspx
Result:
GetFileName: Mouse.aspx
GetFileNameWithoutExtension: Mouse
GetDirectoryName: http:\dotnetperls.com\Cat
-------------------------
Input:C:\Windows\File.txt
Result:
GetFileName: File.txt
GetFileNameWithoutExtension: File
GetDirectoryName: C:\Windows
-------------------------
Input:C:\Word-2007.docx
Result:
GetFileName: Word-2007.docx
GetFileNameWithoutExtension: Word-2007
GetDirectoryName: C:\
特別要注意的,是 Path.Combine(string1,string2) 裡的 string1,不管後面是否有倒斜線,都沒有關系。另外在Dot Net Pers網站上有提到,如果你使用 Path 類別來處理 URL 的字串時,要注意轉換後的節果,原本 URL 的斜線會變成倒斜線。
參考網址:
01.http://www.dotnetperls.com/path
02.http://www.dotblogs.com.tw/sam319/archive/2009/12/21/12589.aspx
需引用的命名空間:
System.IO;
string strPath = @"D:\myUpload\file01.txt";
//取得完整路徑
Path.GetFullPath(strPath); → D:\myUpload\file01.txt
//取得根目錄
Path.GetPathRoot(strPath); → D:\
//取得目錄名稱
Path.GetDirectoryName(strPath); → D:\myUpload
//取得檔名
Path.GetFileName(strPath); → file01.txt
//取得檔名(不含副檔名)
Path.GetFileNameWithoutExtension(strPath); → file01
//取得副檔名
Path.GetExtension(strPath); → .txt
//變更副檔名
Path.ChangeExtension(strPath, "jpg"); → D:\myUpload\file01.jpg
//結合路徑(前面路徑後面有無倒斜線都沒差)
Path.Combine("D:\myUpload", "test.jpg"); → D:\myUpload\test.jpg
Path.Combine("D:\myUpload\", "test.jpg"); → D:\myUpload\test.jpg
//建立並取得唯一的暫存檔完整路徑
Path.GetTempFileName(); → C:\Users\paladin_adm\AppData\Local\Temp\tmp3723.tmp
//取得目前系統的暫存資料夾
Path.GetTempPath(); → C:\Users\paladin_adm\AppData\Local\Temp\
//取得隨機檔案名稱
Path.GetRandomFileName(); → xib2n5aq.n5j
針對不同的檔案名稱測試
-------------------------
Input:cat.aspx
Result:
GetFileName: cat.aspx
GetFileNameWithoutExtension: cat
GetDirectoryName:
-------------------------
Input:really-long-page.aspx
Result:
GetFileName: really-long-page.aspx
GetFileNameWithoutExtension: really-long-page
GetDirectoryName:
-------------------------
Input:test.aspx
Result:
GetFileName: test.aspx
GetFileNameWithoutExtension: test
GetDirectoryName:
-------------------------
Input:invalid-page
Result:
GetFileName: invalid-page
GetFileNameWithoutExtension: invalid-page
GetDirectoryName:
-------------------------
Input:something-else.aspx
Result:
GetFileName: something-else.aspx
GetFileNameWithoutExtension: something-else
GetDirectoryName:
-------------------------
Input:Content/Rat.aspx
Result:
GetFileName: Rat.aspx
GetFileNameWithoutExtension: Rat
GetDirectoryName: Content
-------------------------
Input:http://dotnetperls.com/Cat/Mouse.aspx
Result:
GetFileName: Mouse.aspx
GetFileNameWithoutExtension: Mouse
GetDirectoryName: http:\dotnetperls.com\Cat
-------------------------
Input:C:\Windows\File.txt
Result:
GetFileName: File.txt
GetFileNameWithoutExtension: File
GetDirectoryName: C:\Windows
-------------------------
Input:C:\Word-2007.docx
Result:
GetFileName: Word-2007.docx
GetFileNameWithoutExtension: Word-2007
GetDirectoryName: C:\
特別要注意的,是 Path.Combine(string1,string2) 裡的 string1,不管後面是否有倒斜線,都沒有關系。另外在Dot Net Pers網站上有提到,如果你使用 Path 類別來處理 URL 的字串時,要注意轉換後的節果,原本 URL 的斜線會變成倒斜線。
參考網址:
01.http://www.dotnetperls.com/path
02.http://www.dotblogs.com.tw/sam319/archive/2009/12/21/12589.aspx
2011年4月15日 星期五
T-SQL 將數字前面補0
在整理過去的程式時,看到 N 年前自己曾經為了解決將數字前面補0的問題,寫過如下程式(四位數,不足補0):
回想起當初真是不夠精進,現在已經有比較簡潔的方法了,大致上舉兩個例子:一個是使用 POWER + RIGHT,另一個則是使用 REPLICATE。
POWER + RIGHT
POWER() 函數是用來計算並取得數值的 N 次方值。使用的目的,是希望取得類似 10000的結果,接著與我們原先的數值相加,最後利用 RIGHT 由右邊開始取值來完成。
REPLICATE
REPLICATE()函數是將字串值重複指定的次數。可以透過 LEN() 取得目前數值長度,並將尚可使用的長度帶入REPLICATE()函數。
如果是針對整個資料表作處理,則可參考以下程式:
參考:
01:http://webdesign.kerthis.com/sql/sql_function_power (power)
02:http://msdn.microsoft.com/zh-tw/library/ms174383(v=SQL.105).aspx (REPLICATE)
03:http://gemmarecord.blogspot.com/2008/07/sql-0.html (Ref. Gemma)
04:http://shihshu.blogspot.com/2009/06/stored-procedure0.html (Ref. Ken)
declare @no_x char(4); set @no_x='33' if(@no_x is null ) begin set @no_x=0 end set @no_x = CONVERT(char(4), (@no_x) ) if(len(@no_x)=1) begin set @no_x ='000'+ @no_x end if(len(@no_x)=2) begin set @no_x ='00'+ @no_x end if(len(@no_x)=3) begin set @no_x ='0'+ @no_x end select @no_x
回想起當初真是不夠精進,現在已經有比較簡潔的方法了,大致上舉兩個例子:一個是使用 POWER + RIGHT,另一個則是使用 REPLICATE。
POWER + RIGHT
POWER() 函數是用來計算並取得數值的 N 次方值。使用的目的,是希望取得類似 10000的結果,接著與我們原先的數值相加,最後利用 RIGHT 由右邊開始取值來完成。
declare @id int set @id=33 select RIGHT(POWER(10,4)+@id,4)
REPLICATE
REPLICATE()函數是將字串值重複指定的次數。可以透過 LEN() 取得目前數值長度,並將尚可使用的長度帶入REPLICATE()函數。
declare @id int set @id=33 select REPLICATE('0',4-len(@id))+ CONVERT(nvarchar(4),@id)
如果是針對整個資料表作處理,則可參考以下程式:
create table #tmp (id bigint identity(1,1),[name] nvarchar(20)) insert into #tmp ([name]) values ('paladin') insert into #tmp ([name]) values ('hugo') insert into #tmp ([name]) values ('ken') --使用 REPLICATE select REPLICATE('0',4-len(id))+ CONVERT(nvarchar(4),id) as new_id,name from #tmp --使用 POWER select right(POWER(10,4)+id,4) as new_id,name from #tmp drop table #tmp
參考:
01:http://webdesign.kerthis.com/sql/sql_function_power (power)
02:http://msdn.microsoft.com/zh-tw/library/ms174383(v=SQL.105).aspx (REPLICATE)
03:http://gemmarecord.blogspot.com/2008/07/sql-0.html (Ref. Gemma)
04:http://shihshu.blogspot.com/2009/06/stored-procedure0.html (Ref. Ken)
訂閱:
文章 (Atom)