ASP語法速查1 ( ASP語法速查表站內 ) 超棒ASP語法說明網站w3schoo ASP~一些應用函數
ASP常用的代碼  VBScript-非常詳細  
     

 架IIS 5.1 ASP從頭開始,問題與解決方案

●EOF和BOF

記錄集合的開始和結束用bof/eof表示
bof   (Before   Of   File    在文件之前 )是說   紀錄的指針   是在紀錄的第一條的前面
eof   (End   Of   File         在文件結尾 )是說   紀錄的指針   在最后一條紀錄的后面  
例子】:
if rs.eof then
response.redirect "index.asp"
end if

eof 指最后一條記錄的后面.
rs 是記錄集.
這幾句的意思是==>搜尋,若到了最后的一條后面(說明前面沒有查到)就重定向到index.asp

如果是eof =True表示讀完了。

例子】:
while rs.bof and rs.eof
就是表示如果記錄集rs為空的時候執行循環。

”文件結束指針”End of File ( EOF )
指讀取資料庫存放到記錄集的結束指針

還有文件開始指針 Beginning of File (BOF)
當EOF和BOF的值相等時 說明取出的資料為空 否則就是存在資料

說明】:
如果當前記錄位於第一個記錄之前,BOF 屬性將返回 True (-1),如果當前記錄為第一個記錄或位於其后則將返回 False (0)。

如果當前記錄位於 Recordset 對象的最后一個記錄之后 EOF 屬性將返回 True,而當前記錄為 Recordset 對象的最后一個記錄或位於其前,則將返回 False。

如果 BOF 或 EOF 屬性為 True,則沒有當前記錄。


●if (i mod 2)?

if(i mod 2)

說明1】:
意思是如果i mod 2 <> 0 也就是i不能被2整除就執行下面的句子 ,if(i mod 2 =0) 意思就反過來了。
例子】:

運行則顯示5

說明2】:
mod 是取余數的操作符 比如5 除以2 的余數是1 相當於 5 mod 2 = 1
if(i mod 2) then
...
end if
就是i不能整除2 則執行下面的語句,下面是指 then后面的語句啊

說明3】:
if (i mod 2) then 即是若i mod 2=0,則if的條件為假,而i mod 2=1,則if的條件為真(也就是說0等同於假,1等同於真,推而廣之,if 條件當中條件數值為0,則為假,數值非0則為真)

說明3】:

mod是取余..

你有見過那種循環輸出記錄時
一行一種背景,就是交替行..
就要用這個實現

mod n 那麼結果就只有n種..
比如 任意整數 mod 2 那麼 結果只有可能為0到2-1  也就是0和1

for i = 1 to 10
  if i mod 2 then '結果為1時
    背景色為黑
  else '結果為0時
    背景色為白
  end if
next

一般這樣來實現交替行顏色不同..

●自動發EMAIL?


例子】:

你直接將這段代碼復制過去然后將你和收信人的email寫好!就能送出成功了!送出之后如果沒收到信的話,那你就多等一會兒在去刷新信箱,因為我測試過可以用的!

您上面提到:
錯誤提示:無效的類別字符串
也就是“Set cdomail = Server.CreateObject("CDONTS.NewMail")”有問題!

這個問題很好解決;原因是因為你的系統里面沒有 cdonts.dll 文件

cdonts.dll下載地址:http://www.fzpchome.com/Soft/jbhjbhSoft/200608/cdonts.rar

或者:http://www.fzpchome.com/soft/bbsoft/200608/39.html

或參考:http://www.51windows.net/data/?url=/data/folders/folder_63.asp
http://topic.csdn.net/u/20080504/22/f1a7c72e-e106-4b26-a5f9-e0afe0e57e82.html


●Split~

說明
傳回一個以零為基底,一維的陣列。這個陣列會包含特定個數的子字串。

語法
Split(expression[, delimiter[, count[, compare]]])

Split 函數的語法包含以下幾部分:

組成部分 說明
expression 必要項。為一字串運算式,這個字串運算式要包含子字串及分隔符號。如果 expression 的長度為零,Split 函數會傳回一個空的陣列,也就是說,一個沒有包含任何元素及資料的陣列。 

delimiter
選擇項。用來表示子字串界限的字串字元。如果省略,空白字元 (" ") 將被指定為分隔符號。如果 delimiter 為空字串,會傳回一個元素,即包含了整個 expression 字串的陣列。 

count 選擇項。要被傳回的子字串個數。-1 則表示所有的子字串將被傳回。 

compare
選擇項。指定字串比對的種類。請參考設定部份。


設定
compare 引數的設定值如下:
常數 值 說明
vbBinaryCompare 0 進行二進位資料比對。
vbTextCompare 1 進行文字資料比對。


附註
以下的範例使用 Split 函數以從一字串傳回一個陣列。此函數會執行分隔符號的文字資料比對,並傳回所有的子字串。 

Dim MyString, MyArray
MyString = Split("VBScriptXisXfun!", "x", -1, 1)  
' MyString(0) 包含"VBScript"。
' MyString(1) 包含"is"。
' MyString(2) 包含 "fun!"。
' MyString("VBScript","is","fun!") 

例子1】:
URLs = Split(Request.ServerVariables("SCRIPT_NAME"), "/")
說明==> 把urls變數利用"/"拆成陣列

例子2】:
ASP 中 Split 函數的實例:
大家有碰到過要想取一字符串里的某些值而無從下手?有沒有覺得看書或教材對split的寫法糊里糊涂……如果有此疑問的話,請看下面我對例子的解釋,相信您會對這個有一定的了解。

  我先介紹一下Split函數的用法:
 返回值數組 = Split("字符串","分割符")

  假設變量strURL保存著URL值,如strURL = "ftp://username:password@server",這是我們在IE中登錄到FTP上時的URL形式,如果我們想把其中的username和password取出來的話,該怎麼辦呢?當然解決的方法有許多,在這里我們只介紹用Split來解決的方法。首先,我們找出分割符。我們發現在這個字符串中,username和password之間有個冒號把它們隔開了,所以我們就把這個冒號作為Split函數的"分割符"來分割整個字符串,最后達到取username和password的目的。代碼如下:
strURL = "ftp://username:password@server"
aryReturn = Split(strURL,":")


  這樣我們就把字符串用冒號分割開了,分割后的結果保存在aryReturn中(aryReturn是一個數組)。

  下面我們就來看看這個最終的結果吧,因為Split函數最終返回的是一個數組,所以我們主要就是顯示數組中的元素了,就要涉及到一些跟數組有關的函數:
IsArray() 判斷是否數組的函數,
LBound() 取數組的下標,
UBound() 取數組的上標。

Response.Write("返回值是否為數組:" & IsArray(aryReturn) & "<br>")
For i = LBound(aryReturn) To UBound(aryReturn)
    Response.Write("返回值數組中的元素[" & i & "]:" & Right(aryReturn(i),Len(aryReturn(i))-2) & "<br>")
Next

 

  通過上面的代碼,我們看到字符串被分割成三個部分,即:"ftp"、"//username"、"password@server"。我們要取username和password需要進一步的處理,我就不多說了,直接給出代碼。
  取username的代碼:
strUsername = Right(aryReturn(1),Len(aryReturn(1))-2)
  取password的代碼:

'取password我們又用到Split函數了,不過這回的分割符是"@"
aryTemp = Split(aryReturn(2),"@")
strPassword = aryTemp(0)
'我們可以順便取出server
strServer = aryTemp(1)

 

  分割符可以是一個字符,也可以是一個字符串。如:
aryReturn = Split("ftp://username:password@server,"//")

  注意:
  1.一般來說,ASP中可以不聲明變量,使用Split函數時,如果要聲明返回值的變量的話,只能用Dim,而不能用Redim。雖然說其返回是一個數組,應該是用Redim也可以,但在實際使用過程中是不行。不知是怎麼回事?
  2. 如果用Split函數來分割一個字符串中並不存在的分割符時,將返回整個字符串,其結果是只有一個元素的數組。

  后話,對於要取一字符串中的某些字符或部分,只要抓住規律,再加上用split就可以很好做成各種效果。寫此文,希望對大家的學習有所幫助,同時也希望各路高手能夠指點一二!


●LBound和UBound~

LBound() 函數是檢測數組的下標(返回數組某一維的最小可用下標,下標一般為0)
UBound() 函數是檢測數組的上標

例子1】:
[code]
<%
aa="ftp://username:password@server"
aa=split(aa,":")
response.write LBound(aa)&"<br>"
response.write UBound(aa)&"<br>"
for i=0 to UBound(aa)
  response.write aa(i)&"<br>"
next
%>
[/code]

運行的結果為:
0
2
ftp
//username
password@server


檔案存取與File Access物件







 

arrow
arrow
    全站熱搜

    sleepingwolf 發表在 痞客邦 留言(0) 人氣()