亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我在做asp聊天室中遇到的數組問題:類型不匹配: 'UBound',這是什么情況呢?

我在做asp聊天室中遇到的數組問題:類型不匹配: 'UBound',這是什么情況呢?

繁星coding 2022-04-07 23:19:45
我在用ASP做一個網絡聊天室,遇到了一個關于數組的問題哪位高人幫我看看那句代碼是:For t=0 To UBound(ban)其中數組ban是一個空的數組是不是因為這個原因呢數組的定義在下面的這個文件里:global.asa文件里<SCRIPT LANGUAGE="VBScript" RUNAT="Server">Sub Application_OnStartDim Stats(100, 3)Dim kicked(100)Dim TempArray(50)Dim banList(50)Application("banList")=banListApplication("kicked")=kickedApplication( "Stats" ) = StatsApplication( "Talk" ) = TempArrayApplication( "TPlace" ) = 0Application( "SwearWords" ) = Split("詞句 臟話", " ")End Sub</SCRIPT>出錯的頁面的代碼是:ban=Application("banList")For t=0 To UBound(ban)'response.write ban(t)if ban(t)=request.ServerVariables("LOCAL_ADDR") thenresponse.write " <script>alert('ip被屏蔽');history.go(-1);</script>"response.endend ifnext
查看完整描述

2 回答

?
弒天下

TA貢獻1818條經驗 獲得超8個贊

如果ban是這樣定義的:dim bar
ban = new Array(5)
這樣是可以的,如果是ban = new Array()這種形式是不行的,沒有對其長度做出具體的定義時,求下標函數是不能用的!

也就是說,數組沒有初始化不要緊,只要有長度(也就是元素的個數)。當然你的錯誤不在這里,而是這樣的,ubound求出的是長度,而數組卻是從0開始的!最大下標是長度去掉1才是,而不是長度。

for t = 0 to UBound(ban)-1
這樣是正確的,有5個元素時,最大下標是4,而不是5,最后如果使用了5時則會出現找不到下標等錯誤!當然,如果數組未知長度時而使用UBound是作為一個普通函數用,而找不到這個普通函數就是報錯的!

查看完整回答
反對 回復 2022-04-11
?
夢里花落0921

TA貢獻1772條經驗 獲得超6個贊

你的ban在使用前用split()函數便利為數組了嗎
如果沒有先遍歷

查看完整回答
反對 回復 2022-04-11
  • 2 回答
  • 0 關注
  • 181 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號