仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 351|回复: 7
打印 上一主题 下一主题

[学习教程] ASP网页编程之VBScript言语 基本常识

[复制链接]
精灵巫婆 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:11:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
SQLServer是基于服务器端的中型的数据库,可以适合大容量数据的应用,在功能上管理上也要比Access要强得多。在处理海量数据的效率,后台开发的灵活性,可扩展性等方面强大。vbscript一.VBScript言语概述
我们都但愿制造出的网页既精巧美妙又活泼活跃并且功效壮大,用VBScript言语能够完成这一希望。
VBScript是MicrosoftVisualBasic的简化版本。
VBScript是特地为在扫瞄器中举行事情而计划的。
编程办法和VisualBasic基础不异。
VBScript只要一种数据范例,即,Variant范例。
VBScript不撑持VisualBasic中传统的I/O功效,即不克不及经由过程Open语句和函数在客户机上读写文件,如许避免了大概对客户机酿成的伤害;VBScript不克不及挪用API函数,这是由于API函数挪用会危及客户机的平安,如病毒能够十拿九稳地经由过程API函数挪用来损坏客户机;VisualBasic撑持Screen、Printer、App、Debug、Err和Clipboard等体系工具,但VBScript只撑持Err工具,该工具用于为使用程序供应运转时毛病处置。
二.VBScript言语特性
易学易用
VBScript既可编写服务器剧本,也可编写客户端剧本。
客户端编程言语的长处是
(1)扫瞄器完成了一切的事情,这能够加重服务器的包袱。
(2)客户端程序运转起来比服务器端程序快很多。
一样平常来讲,能够注释VBScript剧本的扫瞄器只要MicrosoftInternetExplorer。
三.VBScript程序的编纂和调试
必需利用<SCRIPT>标签,才干利用剧本言语,格局以下:
<SCRIPT>
VBScript代码
</SCRIPT>
比方,我们能够用一句VBScript语句将"你好,进修VBScript很风趣"写进HTML页面。
<SCRIPTLANGUAGE="VBScript">
<!--
Window.Document.Write("你好,进修VBScript很风趣!")
-->
</SCRIPT>
注释上例中的文档工具的用法:
在文档工具模子(DOM)中,Window工具是最高层的工具,Document工具是Window工具的子工具,以是援用Document工具时应当利用Window.Document,而Write()是Document工具的办法,以是援用Write()办法时,应当利用Window.Document.Write()。
又如:
<SCRIPTlanguage=VBScript>
<!--
Window.alert("你好")
-->
</SCRIPT>
<SCRIPT>标签的LANGUAGE属性
用以指定包括在<SCRIPT>标签中的剧本代码的言语范例。
<SCRIPTLANGUAGE="VBScript">
<SCRIPTLANGUAGE=“JavaScript">
<SCRIPTLANGUAGE=“JScript">
<SCRIPT>标签的RUNAT属性
RUNAT属性用以指定包括在<SCRIPT>标签中的剧本代码的运转于服务端仍是客户端。
<SCRIPTLANGUAGE="VBScript"Runat=server>
VBScript代码
</SCRIPT>
注重:文件要保留成.asp,假如在客户运转则Runat属性能够省略。
正文标签的使用
<SCRIPTLANGUAGE="VBScript">
<!--
VBScript代码
-->
</SCRIPT>
对不撑持VBScript的扫瞄器,会将VBScript代码将作为页面的文本间接显现在页面上,这将会极年夜地损坏全部页面的结构,以是我们必要使用正文标签来办理这个成绩。
四.用VBScript往网页上写内容。
以下示例VBScript代码的功效是在页面上写进“这是一个VBScript的复杂示例”。
<HTML>
<HEAD>
<TITLE>一个VBScript示例</TITLE>
<SCRIPTLANGUAGE="VBScript">
<!--
Window.Document.Write("这是一个VBScript的复杂示例")
-->
</SCRIPT>
</HEAD>
<BODY></BODY>
</HTML>
按钮按下后可以呈现告诫框的示例。
<HTML>
<HEAD>
<TITLE>一个VBScript示例</TITLE>
</HEAD>
<BODY>
<FORM>
<INPUTTYPE="button"VALUE="ALERT">
</FORM>
</BODY>
</HTML>
<SCRIPTLANGUAGE="VBScript">
<!--
subalerter()
window.alert("这是一个VBScript的复杂示例")
endsub
-->
</SCRIPT>实行
五.VBScript代码的地位分歧实行的按次分歧
下载时当即运转的,并且没有包括于历程当中VBScript代码嵌进到<HEAD>标签和</HEAD>标签之间,这段VBScript代码将在页面绘制之前实行。比方
偶然候我们其实不但愿VBScript代码在页面绘制之前实行,而是但愿可以在页面绘制中,在页面符合的地位举行处置。
比方
下载时当即运转的,并且没有包括于历程当中VBScript代码嵌进到<HEAD>标签和</HEAD>标签之间,这段VBScript代码将在页面绘制之前实行。比方
偶然候我们其实不但愿VBScript代码在页面绘制之前实行,而是但愿可以在页面绘制中,在页面符合的地位举行处置。比方
别的一种办理体例:先间接在页面中写上表格的标签,然后使用VBScript代码在表格内写字符串。比方。
挪用时运转VBScript代码的地位
一样平常情形下,我们最好是将VBScript代码放在<HEAD>标签和</HEAD>标签之间,这不是编写剧本的强迫请求,而是一种优秀的编写作风。比方。
另有一种嵌进的办法,就是在页面元素事务处置中间接嵌进VBScript代码(通常是一行)。
<INPUTTYPE="button"VALUE="ALERT"
OnClick=“Window.alert(‘这是一个VBScript的复杂示例’)”>比方。
六.客户端剧本代码示例
用扫瞄器翻开时,将显现一个文本框和一个按钮。在文本框中输出数字后,单击"提交"按钮,扫瞄器会查找并实行历程Button1_OnClick。实行时将挪用表单的Submit办法将数据提交到服务器。若输出不准确,如不是数字或小于1或年夜于50,则会挪用MsgBox语句发生动静框提醒输出准确的数字。
七.VBScript数据范例
VBScript只要一种数据范例,称为Variant。
Variant能够进一步辨别数值信息的特定寄义。比方利用数值信息暗示日期或工夫。
见VBScript数据范例表
1.甚么是常量
常数是具有必定寄义的称号,用于取代数字或字符串,其值从不改动。VBScript界说了很多固有常数。
2.声明常量
利用Const语句能够在VBScript中创立用户自界说常数。比方:
ConstMyString="这是一个字符串。"
ConstMyAge=49
请注重字符串笔墨包括在两个引号(“”)之间。日期笔墨和工夫笔墨包括在两个井号(#)之间。比方:
ConstCutoffDate=#6-1-03#
3.VBScript变量
变量是盘算机内存中已定名的内存地位,该地位可存储剧本运转时能变动的信息。
在VBscript剧本中,利用变量其实不必要懂得变量在盘算机内存中的地点,只需经由过程变量名援用变量就能够检察或变动变量的值。
4.声明变量
语句格局:DIMmyvar1,myvar2,myvar3
在VBscript剧本中,利用一个变量之前不必要专门声明它。
经由过程间接在剧本中利用变量名的体例叫隐式声明变量。
隐式声明变量不是一个好习气,先声明变量再利用是编程的优秀习气。
VBScript中供应了OptionExplicit语句来强迫显式声明变量,如许假如你在编写长而庞大的程序时,假如你敲错了应当变量的名字,将会发生毛病,能够匡助你调试剧本。比方。
5.变量定名划定规矩
变量定名必需遵守VBScript的尺度定名划定规矩。变量定名必需遵守:
(1)第一个字符必需是字母。
(2)不克不及包括嵌进的句点。
(3)长度不克不及凌驾255个字符。
(4)在被声明的感化域内必需独一。
(5)不克不及利用VBScript中的保存字作为变量名。
在VBScript中给变量定名不辨别巨细写。给变量定名时,为便于影象与利用最好能做到“顾名知义”。
6.正文VBScript剧本
Remcomment
comment
比方:
DimMyStr1,MyStr2
MyStr1="Hello":Rem语句和正文用冒号离隔。
MyStr2="Goodbye"这一样是正文不必要冒号。
Rem在没有代码的行上加正文不用用冒号。
REMIamaVBScriptcomment.
IamalsoaVBScriptcomment.
7.VBScript剧本中的续行符
在VBScript剧本中当一行写得很长时,程序的可读性会变得很差,假如从语法上没法换行,而我们又想换行时可以使用续行符,续行符是空格紧跟一个下划线(“_”)。请注重:必定不要健忘后面的空格。
请注重:必定不要健忘后面的空格。
八.VBScript数据范例
1.VBScript中的算术运算符
用于实行数学盘算的运算符。
VBScript中供应了7个算术运算符,个中加(+)、减(-)、乘(*)、除(/)和取负(-)几个运算符的寄义与数学中的基础不异。
(整除操纵符)
在VBScript中,整数除法先对操纵数举行四舍五进运算使操纵数变成整数,然落后行除法运算,整数除法运算后的了局是一个整数,1.52=1,而1.42=0。
mod(取模操纵符)
将两个操纵数相除,前往相除后的余数,比方表达式5mod3的运算了局为2。38.57mod14.21的运算(先四舍五进再取余)了局为11。
2.毗连运算符
(1)+(加操纵符)
加操纵符还能够对字符串范例的操纵数举行运算,然后将两个字符串相连起来作为运算了局。比方,"Howare"+"you!"的运算了局为"Howareyou!"。
(2)&(毗连运算符)
用于字符串的毗连,行将两个字符串变量毗连起来,天生一个新的字符串。+运算符也能举行字符串的毗连,但只能将两个字符串联接。&运算符能强迫性地将两个表达式(不管是甚么范例)做字符串联接,用+运算符毗连别的范例数据时会呈现毛病。
3.对照操纵符
对照操纵符将操纵数举行对照,然后前往一个逻辑值,标明这个对照操纵的了局是不是为真,对照操纵符的操纵数能够是数值范例大概字符串范例的数据。对照操纵符共有6种。分离是。
=、>、<、>=、<=、
除数值范例以外,字符串范例也能够举行对照,在对照字符串的过程当中,VBScript把字符串中的每一个字母转换成响应的ASCII码值,然后从第一个字符入手下手对照两个字符串中响应的字符,对照它们的ASCII码值。
4.对照操纵符示例
比方,"hello"="Hello"的前往了局为False,由于左操纵数的第一个字符为h,右操纵数的第一个字符为H,h的ASCII码值为104,H的ASCII码值为72,从第一个字符入手下手就不相称了,以是表达式的值为False。
而假如表达式为"came">="come",起首,对照两个操纵数的第一个字符,都是c,如许,不克不及间接判断两个操纵数的巨细,然后再对照两个操纵数的第二个字符,左操纵数为a,右操纵数为o,a的ASCII码值为97,o的ASCII码值为111,固然97<111,以是关于这个表达式来讲,它的前往了局为False。
5.逻辑运算符
and(与操纵符)
result=expression1Andexpression2
当且仅当两个表达式均为True,则result为True。假如任一表达式为False,则result为False。
or(或操纵符)
result=expression1Orexpression2
假如两个表达式中最少有一个为True,则result为True。
not(非操纵符)
非操纵符只要一个操纵数,当操纵数为True时,前往了局为False,当操纵数为False时,前往了局为True。比方表达式not(2>3)逻辑运算了局为True,由于2>3的了局为False,而表达式not(2<3)的逻辑运算了局为False,由于2<3的了局为True。
6.运算符优先级
运算时,老是先实行括号中的运算符,然后再实行括号外的运算符。
起首盘算算术运算符,然后盘算对照运算符,最初盘算逻辑运算符。一切对照运算符的优先级不异,即依照从左到右的按次盘算对照运算符。
九.标质变量和数组变量
多半情形下,只需为声明的变量赋一个值。只包括一个值的变量被称为标质变量。偶然候,将多个相干值赋给一个变量更加便利,因而能够创立包括一系列值的变量(即具有不异名子分歧下标值的一组变量),称为数组变量。
1.声明流动数组
数组变量和标质变量是以不异的体例声明的,独一的区分是声明数组变量时变量名前面带有括号()。与后面会商的变量分歧,数组在利用之前必需声明。
比方:DimA(10)
注重:VBScript中数组的下标从0入手下手。上例声了然一个包括11个元素的一维数组。
2.声明静态数组
今朝会商过的只限于流动巨细的数组。一旦你声了然一个流动巨细的数组,你将不克不及改动数组中的元素个数。要改动一个流动数组的巨细,你必需删除它再从头创立。VBScript中别的有一种数组叫静态数组。静态数组是运转时能够改动巨细的数组。
当声明一个静态数组时,你不必要指定命组的巨细与维数,只需在数组名后加一对空括号。但在第一次给一个静态数组分派数值之前,必需用Redim语句指定它的巨细与维数。比方
十.流程把持语句
1.前提把持语句
(1)只要一个前提语句情势:举例
If前提表达式then
语句块
EndIf
(2)前提为True和False时分离运转的语句情势:举例
If前提表达式then
语句块1
else
语句块2
EndIf
(3)If判别布局嵌套利用:举例
If前提表达式0then
If前提表达式1then
语句块1
else
语句块2
EndIf
else
语句块3
EndIf
(4)elseIf布局:举例
If前提表达式1then
语句块1
elseIf前提表达式2then
语句块2
elseIf前提表达式3then
语句块3
……
elseIf前提表达式nthen
语句块n
else
语句块n+1
EndIf
(5)利用SelectCase举行判别:举例
SelectCase测试表达式
Case表达式列表1
[语句块1]
[Case表达式列表达2
[语句块2]]
……
[CaseElse表达式列表n
[语句块n]]
EndSelect
2.轮回把持语句
(1)Do...Loop轮回例1
可使用Do...Loop语句屡次(次数不定)运转语句块。当前提为True时或前提变成True之前,反复实行语句块。
Do...Loop语句情势:
第一种语法情势是先判别轮回前提
Do[{While|Until}condition]
[statements]
[ExitDo]
[statements]
Loop
Do...Loop轮回例2例3
第二种语法情势是先实行一次轮回,再判别轮回前提
Do
[statements]
[ExitDo]
[statements]
Loop[{While|Until}condition]
(2)While...Wend轮回
While...Wend语句是当指定的前提为True时,实行一系列的语句。语法情势为:
Whilecondition
[statements]
Wend
(3)For...Next轮回举例
For...Next语句是以指定次数反复实行一组语句。
语句一样平常情势是:
Forcounter=startToend[Stepstep]
[statements]
[ExitFor]
[statements]
Next
For...Next轮回嵌套举例
能够将一个For...Next轮回安排在另外一个For...Next轮回中,构成嵌套轮回。每一个轮回中的counter要利用分歧的变量名。
(4)ForEach...Next轮回举例
ForEach...Next轮回与For...Next轮回相似。ForEach...Next不是将语句运转指定的次数,而是关于数组中的每一个元素或工具汇合中的每项反复一组语句。这在不晓得汇合中元素的数量时十分有效。
ForEach...Next语句的一样平常情势以下:
ForEachelementIngroup
[statements]
[ExitFor]
[statements]
Next[element]
(5)OnError语句
语法情势:OnErrorResumeNext
当一个毛病产生时,这条语句就实行紧靠产生毛病语句前面的语句,大概实行紧靠挪用历程前面的语句。
SubcmdSubmit_OnClick
OnErrorResumeNext
Myvar="aaa"+30
显现引发毛病的形貌
IfErr0Then
Msgbox"Anerroroccurred."&Err.Description
Err.Clear
Endif
EndSub
十一.历程与函数据
1.Sub历程例1例2例3
声明Sub历程的称号、参数和组成其主体的代码。
Subname[(arglist)]
[statements]
[ExitSub]
[statements]
EndSub
注重:Sub历程默许为公用,即它们关于剧本中的一切其他历程都是可见的。Sub过程当中部分变量的值在挪用过程当中不被保存。
注重:不克不及在任何其他历程(比方,Function)中界说Sub历程。
Call语句
将把持权传送给Sub或Function历程。其语句的一样平常情势以下:
[Call]name[argumentlist]
可选项关头字。假如指定此关头字,则必需用括号把argumentlist括起来。比方:
CallMyProc(0)
你能够挪用统一个历程恣意屡次。
2.Function历程例1例2例3例4
声明Function历程的称号、参数和组成其主体的代码,其一样平常语句情势是:
Functionname[(arglist)]
[statements]
[name=expression]
[ExitFunction]
[statements]
[name=expression]
EndFunction
与Sub历程基础不异,与Sub历程的分歧的地方是:函数有前往值,历程则没有。要从函数前往一个值,只需在函数内将值赋给函数名。在函数的恣意地位都能够呈现恣意个如许的赋值。假如没有给name赋值,则历程将前往一个默许值:数值函数前往0,字符串函数前往零长度字符串("")。
3.输出、输入函数
以下所讲的输出、输入函数只能在客户端利用,不克不及在服务端利用。
(1)InputBox函数
语法情势是:
InputBox(prompt[,title][,default][,xpos][,ypos][,helpfile,context])
在对话框中显现提醒,守候用户输出文本或单击按钮,并前往文本框内容。比方
DimInput
Input=InputBox("输出姓名")
MsgBox("输出的姓名是:"&Input)
(2)MsgBox函数例1
在对话框中显现动静,守候用户单击按钮,并前往一个值唆使用户单击的按钮。
MsgBox(prompt[,buttons][,title][,helpfile,context])
DimMyVar
MyVar=MsgBox("HelloWorld!",65,"MsgBoxExample")
根据点击的按钮情形前往1或2。
4.字符串函数
在VBscript中,体系供应了大批的字符串函数来处置有关字符串的事变。
(1)Left函数
语法情势:Left(string,length)
前往包括字符串中从右边算起指定命量的字符。
(2)Right函数
语法情势:Right(string,length)
前往包括从字符串右侧掏出的指定命量的字符。
(3)Mid函数
语法情势:Mid(string,start[,length])
前往包括字符串中指定命量的字符。
(4)Space函数
语法情势:Space(number)
前往特定命目标空格。
(5)Ltrim、Rtrim、Trim函数
语法情势:LTrim(string)、RTrim(string)、Trim(string)
前往包括指定字符串的拷贝,没有前导空缺(LTrim)、跟随空缺(RTrim)或前导和跟随空缺(Trim)。
(6)InStr函数
语法情势:
InStr([start,]string1,string2[,compare])
前往一指定字符串在另外一字符串中开始呈现的地位。
(7)LCase函数
语法情势:LCase(string)
前往转成小写的String。
(8)UCase函数
语法情势:UCase(string)
前往转成年夜写的String。
(9)Len函数
语法情势:Len(string|varname)
前往包括字符串内字符的数量,或是存储一变量所需的字节数。
(10)Chr函数
语法情势:Chr(charcode)
前往ASCII码表与charcode对应的字符。
(11)Asc函数
语法情势:Asc(string)
前往一个代表字符串中首字母的字符ASCII码。
(12)Split函数
语法情势:
Split(expression[,delimiter[,count[,start]]])
前往下标从0入手下手的一维数组,个中包括指定命目标子字符串。
(13)Replace函数
前往字符串,个中指定命目标某子字符串被交换为另外一个子字符串。
语法情势:
Replace(expression,find,replacewith[,compare[,count[,start]]])
(14)StrComp函数
语法情势:
StrComp(string1,string2[,compare])
前往一个标明字符串对照了局的值。
(15)String函数
语法情势:
String(number,character)
前往Variant(String),个中包括指定长度反复字符的字符串。
(16)Filter函数
Filter函数功效是过滤一个字符串数组,前往切合前提的子汇合数组。
语法情势:
Filter(InputStrings,Value[,Include[,Compare]])
(17)StrReverse函数
语法情势:StrReverse(string1)
前往一个字符串,个中一个指定子字符串的字符按次是反向的。
ActiveServerPage技术为应用开发商提供了基于脚本的直观、快速、高效的应用开发手段,极大地提高了开发的效果。在讨论ASP的安全性问题之前,让我们来看看ASP是怎么工作的。
冷月葬花魂 该用户已被删除
沙发
发表于 2015-1-18 22:37:19 | 只看该作者
如何更好的使自己的东西看上去很不错等等。其实这些都不是问题的实质,我们可以在实践中不断提升自己,不断充实自己。
变相怪杰 该用户已被删除
板凳
发表于 2015-1-25 13:45:16 | 只看该作者
Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名")
第二个灵魂 该用户已被删除
地板
发表于 2015-2-8 14:06:49 | 只看该作者
用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。
因胸联盟 该用户已被删除
5#
发表于 2015-2-25 18:37:38 | 只看该作者
最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。
灵魂腐蚀 该用户已被删除
6#
发表于 2015-3-8 01:26:25 | 只看该作者
还有如何才能在最短的时间内学完?我每天可以有效学习2小时,双休日4小时。
精灵巫婆 该用户已被删除
7#
 楼主| 发表于 2015-3-15 19:43:26 | 只看该作者
虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。
深爱那片海 该用户已被删除
8#
发表于 2015-3-22 03:34:33 | 只看该作者
下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 01:37

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表