?? asp腳本變量、函數(shù)、過程和條件語句.htm
字號:
title=ASP上手“快捷方式”-剖析ASP腳本
href="http://lzjx.com/w/main.asp?id=442&sx=jc">ASP上手“快捷方式”-剖析..</A><BR>·<A
title=ASP上手“快捷方式”-對象和組件
href="http://lzjx.com/w/main.asp?id=443&sx=jc">ASP上手“快捷方式”-對象..</A><BR>·<A
title=ASP上手“快捷方式”-腳本示例
href="http://lzjx.com/w/main.asp?id=444&sx=jc">ASP上手“快捷方式”-腳本..</A><BR>·<A
title=ASP上手“快捷方式”-腳本編寫技巧
href="http://lzjx.com/w/main.asp?id=445&sx=jc">ASP上手“快捷方式”-腳本..</A><BR>·<A
title=ASP上手“快捷方式”-樣例腳本
href="http://lzjx.com/w/main.asp?id=446&sx=jc">ASP上手“快捷方式”-樣例..</A><BR>·<A
title=ASP上手“快捷方式”-數(shù)據(jù)庫
href="http://lzjx.com/w/main.asp?id=447&sx=jc">ASP上手“快捷方式”-數(shù)據(jù)..</A><BR>·<A
href="http://lzjx.com/w/main.asp?id=523&sx=jc">ASP的技術(shù)特點與使用方法</A><BR>·<A
href="http://lzjx.com/w/main.asp?id=522&sx=jc">SQL
Server訪問ADO</A><BR>·<A
href="http://lzjx.com/w/main.asp?id=521&sx=jc">ASP個人上手指南</A><BR></TD></TR></TBODY></TABLE><SPAN
class=l15></SPAN></TD>
<TD vAlign=top align=middle width=1 bgColor=#cccccc></TD>
<TD vAlign=top align=middle width=592 bgColor=#ffffff>
<TABLE cellSpacing=0 cellPadding=6 width="98%" border=0>
<TBODY>
<TR>
<TD class=xx vAlign=bottom height=30>■ 基礎(chǔ)教程 >
ASP腳本變量、函數(shù)、過程和條件語句</TD></TR></TBODY></TABLE>
<TABLE height=119 cellSpacing=6 cellPadding=3 width="99%" border=0>
<TBODY>
<TR>
<TD class=xk vAlign=top align=left width="50%"><BR>
在上一期中作者向諸位簡要介紹了 ASP 腳本語言之一 VBScript 的一些基本常識,本期將繼續(xù)給大家講解 VBScript
的腳本編寫方法,并通過展示 VBScript 在 ASP 程序編寫過程中的一系列實例使大家對 VBScript 有更進一層的理解。
<BR> 大家在學(xué)習(xí)了腳本語言 VBScript 的變量、常量和過程的基本概念后,本期將繼續(xù)向各位介紹 VBScript
的函數(shù)和語法。 <BR><BR>
函數(shù)和過程一樣都是命名了的代碼塊,但它們卻有很大的區(qū)別,過程完成程序任務(wù),函數(shù)則返回值。我們可以這樣理解,過程象一個完整的句子,而函數(shù)則象一個單詞。舉個例子,當(dāng)你想獲取某個數(shù)的平方根,你只要將該數(shù)傳給
VBScript 的 Sqr() 函數(shù),此函數(shù)會立即返回該數(shù)的平方根。如: <BR> A=sqr(9) <BR><BR> 則
A=3。熟練掌握腳本語言的函數(shù)將給你編寫 ASP
程序帶來極大的方便,就以上一期結(jié)尾處作者布置給大家的課后練習(xí)來說,如果你對腳本語言的函數(shù)掌握不夠全面,那么解決如此之小的一個問題將很有可能花費你相當(dāng)大的精力。現(xiàn)在讓我們來回顧一下這道課后練習(xí)。
<BR> “作者正在用 ASP 制作一套基于 WEB 的 BBS 系統(tǒng),希望能在其中添加一項特殊功能,即當(dāng)任何用戶登陸該 BBS
后都能夠查閱近七天來所有新發(fā)布的信息。” <BR><BR> 如果你不熟悉 VBScrip,就不會知道 VBScrip
本身提供了一個用來取得日期之間的差或和的函數(shù) DateSerial,它的語法如下: <BR><BR>
DateSerial(year, month, day) <BR><BR> 如果你要指定一個日期,例如:1998 年 11 月
10 日,那么 DateSerial 函數(shù)中每個參數(shù)的取值范圍都應(yīng)該是可接受的,即日的取值應(yīng)在 1 和 31 之間,月的取值應(yīng)在 1 和
12
之間。但是,也可以使用表示某日之前或之后的年、月、日數(shù)目的數(shù)值表達(dá)式為每個參數(shù)指定相對日期。以下樣例中使用了數(shù)值表達(dá)式代替絕對日期。在這里,DateSerial
函數(shù)返回 1998 年 11 月 10 日之前二十年 (1990-20) 零兩個月 (11-2) 又一天 (10-1) 的日期:即
1978 年 9 月 9 日。程序如下: <BR> Datep=DateSerial(1998-20, 11-2,10-1)
<BR><BR> 對于 year 參數(shù),若取值范圍是從 0 到 99,則被解釋為 1900 到 1999 年。對于此范圍之外的
year 參數(shù),則使用四位數(shù)字表示年份(例如 1800
年)。當(dāng)任何一個參數(shù)的取值超出可接受的范圍時,則會適當(dāng)?shù)剡M位到下一個較大的時間單位。例如,如果指定了 35
天,則這個天數(shù)將被解釋成一個月加上多出來的日數(shù),多出來的日數(shù)取決于其年份和月份。但是如果參數(shù)值超出 -32,768 到 32,767
的范圍,或者由三個參數(shù)指定(無論是直接還是通過表達(dá)式指定)的日期超出了可以接受的日期范圍,就會發(fā)生錯誤。<BR><BR>
當(dāng)我們了解并掌握了函數(shù) DateSerial
的使用方法后,再來看看作者布置的這道題目,一切就迎刃而解了。下面我將程序中的此部分代碼公布如下:
itemp=DateSerial(Year(date), month(date), day(date)-7)<BR>
itemp=DateValue(itemp)<BR> sql="Select * from message Where
message.creatime Between #"&date&"# And #"&itemp&"#
"<BR><BR> 在這里我們又接觸到了一組函數(shù) Year,month,day,它們是用來得到一個日期的年、月、日。date
是常數(shù),表示今天日期,而函數(shù) DateValue 則是將字符串變量轉(zhuǎn)化為日期格式的變量。在本段程序的第三行,我們第一次接觸到了標(biāo)準(zhǔn)的
SQL 查詢語句,這句語句是什么意思呢?<BR><BR> “Select”是標(biāo)準(zhǔn)的 SQL 數(shù)據(jù)庫查詢命令,通過 SELECT
語句我們可以在數(shù)據(jù)庫中檢索數(shù)據(jù),并將查詢結(jié)果提供給用戶,此處的“*”表示查詢該名為“message”的數(shù)據(jù)庫中的所有記錄,而“where”的作用是設(shè)定一個查詢條件,是為了將數(shù)據(jù)庫中符合條件的記錄取出來,“message.creatime”是一個儲存了數(shù)據(jù)庫中記錄創(chuàng)建日期的變量。將整句語句連起來理解就是:查詢名為
message 的數(shù)據(jù)庫中的所有記錄,并將其中創(chuàng)建日期在今天和今天以前七日以內(nèi)的所有記錄存儲在變量 sql 中。可能由于大家第一次接觸
SQL 語句,一時間無法完全理解它的作用,不過不用擔(dān)心在今后的章節(jié)中作者將專門用一期給大家介紹 SQL 的使用方法。 <BR>
通過上面的學(xué)習(xí),大家應(yīng)該已經(jīng)能夠理解函數(shù)在程序中的作用,當(dāng)然我們不必去死背函數(shù),但要做到熟練運用只有一條捷徑 --
多實踐。接下來讓我們來看看 VBScript 的基本語法。 <BR><BR>
了解編程語言的朋友一定知道在程序中控制程序流程的語句主要可以分為條件語句和循環(huán)語句,在 VBScript 中可使用以下條件語句:
If...Then...Else 語句<BR> Select Case 語句<BR><BR><BR>
If...Then...Else 語句用于計算條件是否為 True 或
False,并且根據(jù)計算結(jié)果指定要運行的語句。通常,條件是使用比較運算符對值或變量進行比較的表達(dá)式,If...Then...Else
語句可以按照需要進行嵌套。 <BR><BR> 讓我們來創(chuàng)建兩個范例文件:if1.asp 和 if2.asp <BR><BR>
將以下語句剪貼到記事簿中,并保存為 if1.asp( 注意:請將程序中“<”后的空格去掉 ) <
html><BR> < head><BR> < TITLE>if1.asp<
/TITLE><BR> < /head>< body
bgcolor="#FFFFFF"><BR> < form action="if2.asp"
method=get><BR> Your First Name< INPUT NAME="FirstName"
MaxLength=20>< p><BR> Your Last Name< INPUT
NAME="LastName" MaxLength=20>< p><BR> < INPUT
TYPE=submit>< INPUT TYPE=reset><BR> <
/form><BR> < /body><BR> <
/html><BR> 將以下語句剪貼到記事簿中,并保存為 if2.asp < html><BR> <
head><BR> < TITLE>ifrespond.asp< /TITLE><BR> <
/head><BR> < %
fname=request.querystring("Firstname")<BR> lname=request.querystring("Lastname")<BR> If
fname="George" and lname="Washington" then %><BR> Hi.You must be
the first president!<BR> < % else %><BR> Hi!Nice to Meet
You<BR> < %end if %><BR> < /body><BR> <
/html><BR><BR> asp1.asp 產(chǎn)生一個文本輸入框,要求用戶輸入姓、名,如下圖:
<BR><BR><BR> <BR><BR> asp2.asp 則是用 IF 語句判斷用戶輸入的姓名是否為“George
Washington”, 并做出相應(yīng)的反饋。在此我們遇到了一個 ASP 的內(nèi)建對象 request,通過使用 request
對象可以訪問任何用 HTTP 請求傳遞的信息,包括從 HTML 表格中用 POST 方法或 GET 方法傳遞的參數(shù)、cookie
和用戶認(rèn)證。而 QueryString 集合檢索 HTTP 查詢字符串中變量的值,HTTP 查詢字符串由問號 (?) 后的值指定。如:
<BR>
http://localhost/if2.asp?Firstname=George&Lastname=Washington
<BR><BR> 生成值為 "Firstname=George&Lastname=Washington"
的變量名字符串。關(guān)于 ASP 對象作者將在今后的幾篇里重點講述。 <BR><BR> If...Then...Else
語句的一種變形允許您從多個條件中選擇,即添加 ElseIf 子句以擴充 If...Then...Else
語句的功能,使您可以控制基于多種可能的程序流程。 <BR><BR> 我們將 asp2.asp 的程序部分?jǐn)U充如下: <
%<BR> fname=lcase(request.querystring("Firstname"))<BR> lname=lcase(request.querystring("Lastname"))<BR> If
fname="george" and lname="washington" then %><BR> Hi.You must be
the first president!< p><BR> < % elseIf fname="ronald" and
lname="reagan" then %><BR> Hi.You must be the actor
president!< p><BR> < % elseIf fname="jimmy" and
lname="carter" then %><BR> Hi.You must be the peanut farmer
president!< p><BR> < % elseIf fname="naoko" or
fname="charles" then %><BR> Hi.Your name reminds me of
someone,but I am not sure who!< p><BR> < % else
%><BR> Hi!Nice to Meet You<BR> < % end if %><BR><BR>
可以添加任意多個 ElseIf 子句以提供多種選擇。但使用多個 ElseIf
子句經(jīng)常會使程序變得很累贅。在多個條件中進行選擇的更好方法是使用 Select Case 語句。 <BR><BR> Select
Case 結(jié)構(gòu)提供了 If...Then...ElseIf 結(jié)構(gòu)的一個變通形式,可以從多個語句塊中選擇執(zhí)行其中的一個。Select
Case 語句提供的功能與 If...Then...Else 語句類似,但是可以使代碼更加簡練易讀。Select Case
結(jié)構(gòu)在其開始處使用一個只計算一次的簡單測試表達(dá)式。表達(dá)式的結(jié)果將與結(jié)構(gòu)中每個 Case 的值比較。如果匹配,則執(zhí)行與該 Case
關(guān)聯(lián)的語句塊,我們同樣可以用 Select Case 語句來寫 asp2.asp 文件:<BR> <
%<BR> fname=lcase(request.querystring("Firstname"))<BR> lname=lcase(request.querystring("Lastname"))<BR> name=fname+lname<BR> Select
case name<BR> case "georgewashington"<BR> response.write "Hi.You
must be the first president!< p>"<BR> case
"ronaldreagan"<BR> response.write "Hi.You must be the actor
president!< p>"<BR> case "jimmycarter"<BR> response.write
"Hi.You must be the peanut farmer president!< p>"<BR> case
"naokocharles"<BR> response.write "Hi.Your name reminds me of
someone,but I am not sure who!< p>"<BR> case
else<BR> response.write "Hi!Nice to Meet You"<BR> End Select
%><BR><BR> 請注意 Select Case 結(jié)構(gòu)只計算開始處的一個表達(dá)式,并且只計算一次,而
If...Then...ElseIf 結(jié)構(gòu)計算每個 ElseIf 語句的表達(dá)式,這些表達(dá)式可以各不相同。因此僅當(dāng)每個 ElseIf
語句計算的表達(dá)式都相同時,才可以使用 Select Case 結(jié)構(gòu)代替 If...Then...ElseIf 結(jié)構(gòu)。Select
Case 語句也是可以是嵌套的,每一層嵌套的 Select Case 語句必須有與之匹配的 End Select
語句。<BR><BR> 以上給大家介紹的腳本語言 VBScript
的函數(shù)和條件語句的使用方法,由于篇幅的緣故不能詳細(xì)展開,希望各位有志學(xué)習(xí) ASP 的朋友,能在課后進行一定程度的自學(xué)和練習(xí)。在日常開發(fā)
ASP 應(yīng)用程序的過程中作者本人日漸體會到了腳本語言的重要性,靈活運用腳本語言將非但可以大大提高 ASP
應(yīng)用程序的開發(fā)過程,給廣大網(wǎng)站制作人員節(jié)省大量的時間,而且還能夠增強 ASP
應(yīng)用程序的執(zhí)行效率和功能。欲善其事必先利其器,因此作者在此強烈建議諸君,熟練掌握腳本語言,這將對你的 ASP
程序開發(fā)大有幫助。由于本文不是 VBScript 教程,因此只能用較小的篇幅給大家簡要介紹一些 VBScript
基本常識,在下一期介紹完 VBScript 的循環(huán)語句后,我們將正式開始學(xué)習(xí) ASP 的內(nèi)建對象,要深入
VBScript,建議大家找些教材進行自學(xué)。如果你在看完本文后有任何問題請及時 Mail 我,如果你有什么好的建議也請來信告知,謝謝。
<BR> 作者:書生<BR></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width="98%" border=0>
<TBODY>
<TR>
<TD>■今日推薦:<A
href="http://lzjx.com/w/main.asp?id=388&sx=jc">ASP內(nèi)建對象Serv</A>
</TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width=800 bgColor=#ffffff border=0>
<TBODY>
<TR>
<TD background=ASP腳本變量、函數(shù)、過程和條件語句.files/qw39.gif></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=1 cellPadding=5 width=800 bgColor=#ffffff border=0>
<TBODY>
<TR>
<TD class=N noWrap align=middle>
<TABLE cellSpacing=0 cellPadding=0 width="100%" bgColor=#ffffff
border=0><TBODY>
<TR>
<TD
background=ASP腳本變量、函數(shù)、過程和條件語句.files/qw39.gif></TD></TR></TBODY></TABLE><BR>本網(wǎng)站是學(xué)習(xí)網(wǎng)站,內(nèi)容整理大多來自互聯(lián)網(wǎng),盡量標(biāo)明了出處,如果侵犯了您的權(quán)力請通知我,立即糾正<BR>歡迎提出寶貴建議,提供相關(guān)資料,以便相互學(xué)習(xí),共同提高!<BR>
<OBJECT
codeBase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0
height=18 width=103 classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000><PARAM NAME="BGCOLOR" VALUE=""><PARAM NAME="movie" VALUE="../images/21sg.swf"><PARAM NAME="quality" VALUE="high">
<embed src="../images/21sg.swf"
quality="high"
pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"
type="application/x-shockwave-flash" width="103" height="18" ></embed>
</OBJECT></TD></TR>
<TR>
<TD height=79> </TD></TR>
<TR>
<TD align=middle></TD></TR></TBODY></TABLE></CENTER></BODY></HTML>
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -