标题:VBscript常用函数[实用zz]
只看楼主
xmuer
Rank: 1
等 级:新手上路
帖 子:236
专家分:0
注 册:2007-5-10
结帖率:100%
 问题点数:0 回复次数:3 
VBscript常用函数[实用zz]
VBscript常用函数:

1.数值型函数:

abs(num): 返回绝对值
sgn(num): num>0 1; num=0 0; num<0 -1;判断数值正负
hex(num): 返回十六进制值 直接表示:&Hxx 最大8位
oct(num): 返回八进制值 直接表示:&Oxx 最大8位
sqr(num): 返回平方根 num>0
int(num): 取整 int(99.8)=99; int(-99.2)=100
fix(num): 取整 fix(99.8)=99; fix(-99.2)=99
round(num,n): 四舍五入取小数位 round(3.14159,3)=3.142 中点数值四舍五入为近偶取整 round(3.25,1)=3.2
log(num): 取以e为底的对数 num>0
exp(n): 取e的n次幂 通常用 num^n
sin(num): 三角函数,以弧度为值计算 (角度*Pai)/180=弧度 con(num); tan(num); atn(num)

2.字符串函数:

len(str):计算字符串长度 中文字符长度也计为一!
mid(str,起始字符,[读取长度]):截取字符串中间子字符串
left(str,nlen):从左边起截取nlen长度子字符串
right(str,nlen):从右边起截取nlen长度子字符串
Lcase(str):字符串转成小写
Ucase(str):字符串转成大写
trim(str):去除字符串两端空格
Ltrim(str):去除字符串左侧空格
Rtrim(str):去除字符串右侧空格
replace(str,查找字符串,替代字符串,[起始字符,替代次数,比较方法]):替换字符串
注:默认值:起始字符 1;替代次数 不限;比较方法 区分大小写(0)
InStr([起始字符,]str,查找字符串[,比较方法]):检测是否包含子字符串 可选参数需同时选 返回起始位置
InStrRev(str,查找字符串[,起始字符][,比较方法]):反向检测是否包含子字符串 返回起始位置
space(n):构造n个空格的字符串
string(n,str):构造由n个str第一个字符组成的字符串
StrReverse(str):反转字符串
split(str,分割字符串[,次数][,比较方法]):以分割字符串为分割标志将字符串转为字符数组 可选参数需同时选

3.数据类型转换函数:
Cint(str):转换正数 True -1;False 0;日期 距离1899/12/31天数;时间 上午段 0;下午段 1;
Cstr(str):日期 输出格式 yyyy/mm/dd;时间 输出格式 Am/Pm hh:mm:ss
Clng(str):与Cin()类似
Cbool(num):num不为零 True;反之 False
Cdate(str):转换日期格式 0:#Am 12:00:00#;正数 距离1899/12/31天数的日期;浮点数 日期+小数时间
Cbyte(num):num<255 转换为字节
Csng(str):转换为单精度数值
Cdbl(str):转换为双精度数值
Ccur(str):转换为现金格式

4.时间函数:
date:取系统当前日期
time:取系统当前时间
now:取系统当前时间及日期值 Datetime类型
timer:取当前时间距离零点秒值,计时器,可计算时间差
DateAdd(间隔单位,间隔值,日期):推算相邻日期
DateDiff(间隔单位,日期一,日期二):计算时间差 日期二-日期一
Datepart(间隔单位,日期):计算日期的间隔单位值
Dateserial(date):输出日期值(按序列计算)
Timeserial(time):输出时间值(按序列计算)
DateValue(datetime):取出字符串中日期值
Timevalue(datetime):取出字符串中时间值
weekday(date):计算星期几
MonthName(date):输出月分名
year(datetime):截取年份
month(datetime):截取月份
day(datetime):截取日
hour(datetime):截取小时
minute(datetime):截取分钟
second(datetime):截取秒

5.其它函数:
Array(unit,..):动态生成数组
Asc(str):输出字符串第一个字符的ASCII码
Chr(asc):转换ASCII为字符 Enter:Chr(13)&Chr(10)
Filter(数组名称,关键字符串,[,包含][,比较方法]):
将字符串数组中含有关键字符串的元素存成新的数组(默认) [包含]为false则取不包含的元素
Join(ArrayName):将数组中元素连成字符串
Ubound(ArrayName[,维数]):取得数组相应维数的上界
Lbound(ArrayName[,维数]):取得数组相应维数的下界 一般为0
Randmize n:启动随机数种子
Rnd(n):取得随机数,n>0或为空,取序列下一随机值,n<0,随机值相同,n=0,生产与上一随机值相同的数
取介于A和B之间的随机正数C,公式:C=Int((B-A+1)*Rnd+A) 条件(B>A)

子程序和自定义函数

Sub StrSubName Function StrFunName(arg[1],..)
子程序体 函数体
Exit Sub 中途跳出 Exit Function 中途跳出
End Sub StrFunName=Value 返回值
End Function
[call] StrSubName 引用子程序 Var=StrFunName(arg[1],..) 引用函数

子程序和自定义函数可以递归调用;

ASP六大对象常用语句示范:

Response:

Response.write StrVar/"String":向网页写出参数值或字符串 等同于在Html标记中嵌入<%=StrVar/"String"%>
Response.End:停止页面编译,并将已经编译内容输出到浏览器
Response.Buffer=True|False:页面编译时是否使用缓存的设置,一般在页面头部设置
Response.Flush:强制输出页面已编译部分内容
Response.Clear:将缓冲区内的数据清除
Response.Redirect URL:停止页面编译或输出,转载指定所需页面
Response.IsClientConnected:返回True|False,检测用户是否还处于连接状态
Response.Charset(CharsetName):设置页面编码类型,即<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
Response.ContentType [= ContentType ]:设置页面文件类型,同上
Response.Expires [= number]:设置页面失效时间,单位分钟
Response.ExpiresAbsolute [= [date] [time]]:设置页面失效的绝对时间
Response.Status = StatusDescription:设置页面状态描述

Request:

Request("PassStrName"):读取网页传递值,包括表单及以?PassStrName=value&PassStrName_n=value_n形式
Request[.collection|property|method](variable)
Request.querystring("PassStrName"):读取Get方法传递的表单值和?PassStrName=value
Request.QueryString(Varible)[(Index).Count]
Request.form("PassStrName"):读取Post方法传递的纯表单域的值
Request.Form(Parameter)[(Index).Count]
Request.ServerVaribles(Server Environment Variable):读取客户端系统环境变量,详见参考
Request.BinaryRead(Count):读取指定字节数的传送值
Request.TotalBytes:查询体的长度,以字节为单位,只读

注:同名表单如:CheckBox如有多项值,传递形式如右,StrName=value1,value2,...需要用Split函数分割各项值
Multiple的Select表单与CheckBox类似,TextArea的值可包含换行字符,用Replace转为<br>,以满足格式需要

Session:(用户全局变量)

Session("SesName")=value:存储Session变量值,也可读取该值
Session("SesName")=Empty:判断Session值是否存在的两种方法
IsEmpty(Session("SesName"))=True|False:判断Session值是否存在的两种方法
Session.TimeOut=num:设置Session变量的存在时效,单位分钟
Session.Abandon:清除所有Session变量值
Session.SessionID:Session变量的ID序列号,只读

Application:(应用程序全局变量)

Application("AppName")=value:存储Application变量值,也可读取该值
Application("AppName")=Empty:判断Application值是否存在的两种方法
IsEmpty(Application("AppName"))=True|False:判断Application值是否存在的两种方法
Application.Lock:Application变量值锁定,防止同时更改变量值
Application.UnLock:Application变量值解锁,允许更改变量值

注:Session与Application变量都可以用来存储数组和系统对象,引用方法是变量名相当于数组名而已,
但不能直接改变其值,需要借助临时数组修改值后,再赋给Session与Application变量

Global.asa文件的结构:<% @language="VBscript"%>
<% Sub Application_OnStart ...End Sub
Sub Application_OnEnd ... End Sub
Sub Session_OnStart ...End Sub
Sub Session_OnEnd ... End Sub%>

Server:

Server.MapPath("FileUrl"):映射文件名的服务器站点绝对地址,Path=Server.MapPath(./)可以得到虚拟目录根路径
Server.HtmlEncode("string"):转换为可以直接显示带Html格式的字符串,如:<,>等
Server.URLEncode( "string"):转换为浏览器地址编码
set Var=Server.CreatObject("ObjName"):创建对象变量
Server.ScriptTimeout = NumSeconds:ASP程序页面执行时限,以秒为单位

Cookies: 存储在用户本机的临时变量,每个Cookie的最大字节4KB,最多可以有300个Cookie 1.2MB

Response.cookies("StrCookieName")=value:存储Cookie变量值,也可读取该值
Response.cookies("StrCookieName")="":判断是否为空
Response.cookies("StrCookieName").Expires=Date:变量有效期,以天为单位,小于当前时间立即失效
Response.Cookies(Cookie[(key).Attribute]):标准语法

ObjectContext 控制ASP的事务处理

ObjectContext.OnTransactionAbort:由放弃的事务处理事件激发,在脚本完成处理后发生
ObjectContext.OnTransactionCommit:由成功的事务处理事件激发,在脚本完成处理后发生
ObjectContext.SetAbort:显式的放弃一次事务处理
ObjectContext.SetComplete:覆盖前面任何调用ObjectContext.SetAbort方法的调用
Msgbox "string"/StrName:VBscript提示框

表单的Onsubmit事件:在同一页面写入 Function FormName_onsubmit()..FormName_onsubmit=True/False..end Function,
页面会在提交前先执行语句,并根据返回值判断是否完成提交任务。

数据库连接字符串举例:

Access2000:
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("dbase\liuyan.mdb")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("dbase\liuyan.mdb")&";Password=admin"
Recordset.Open "数据表名", conn, 2, 2

SqlServer2000:
conn.Open "Provider=SQLOLEDB.1;User ID=sa;Password=admin;Initial Catalog=pubs;Data Source=server\garlmrm"
conn.Open "provider=SQLOLEDB;data source=hyserver;uid=sa;pwd=;database=pubs"
Recordset.Open StrSQL, conn, 2, 2

Dbase:(?)
conn Open "Driver={Microsoft dBase Driver};SourceType=DB;SourceDB=" & Server.MapPath( "目录名" )
Recordset.Open StrSQL, conn, 2, 2

FoxBase:
conn Open "Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=" & Server.MapPath( "目录名" )
Recordset.Open DBF文件名或Select语句, conn, 2, 2
conn Open "Driver={Microsoft Visual FoxPro Driver};SourceType=DBC;SourceDB=" & Server.MapPath( "DBC数据库文件名" )
Recordset.Open DBF文件名或Select语句, conn, 2, 2

Excel:
conn Open "Driver={Microsoft Excel Driver (*.xls)};DBQ=" & Server.MapPath( "XLS文件名" )
Recordset.Open "Select * From ["&sheet&"$]",conn,2,2

注:使用DBF、DBC、Excel数据库,下面几点要注意:Excel数据库只能读取、增加记录、修改记录,但不能删除记录;
DBF、DBC可以读取记录、增加记录、删除记录、修改记录,但是在增加记录时,任何一个字段值都不能为空,由此
可看出局限性很大,所以尽可能地用MDB或SQL数据库。
搜索更多相关主题的帖子: num VBscript 函数 八进制 round 
2007-12-29 12:45
xmuer
Rank: 1
等 级:新手上路
帖 子:236
专家分:0
注 册:2007-5-10
得分:0 
ASP之转换函数示例
ASP之转换函数示例

Variant变量一般会将其代表的数据子类型自动转换成合适的数据类型,但有时候,自动转换也会造成一些数据类型不匹配的错误.这时,可使用转换函数来强制转换数据的子类型.

函数 功能
Asc 函数 返回与字符串的第一个字母对应的 ANSI 字符代码。
Chr 函数 返回与指定的 ANSI 字符代码相对应的字符
Hex 函数 返回表示十六进制数字值的字符串。
Oct 函数 返回表示数字八进制值的字符串。
CStr 函数 返回表达式,该表达式已被转换为 字符串 子类型。

CDate 函数 返回表达式,此表达式已被转换为 日期 子类型。
CInt 函数 返回表达式,此表达式已被转换为 整数 子类型。
CLng 函数 返回表达式,此表达式已被转换为 长整数 子类型
CSng 函数 返回表达式,该表达式已被转换为 Single 子类型
CDbl 函数 返回表达式,此表达式已被转换为 Double 子类型
CBool 函数 返回表达式,此表达式已转换为 布尔 子类型

1、Asc 函数示例

下面例子中, Asc 返回每一个字符串首字母的 ANSI 字符代码:
Dim MyNumber
MyNumber = Asc("A") '返回 65。
MyNumber = Asc("a") '返回 97。
MyNumber = Asc("Apple") '返回 65。


2、Chr 函数示例

下面例子利用 Chr 函数返回与指定的字符代码相对应的字符:
Dim MyChar
MyChar = Chr(65) '返回 A。
MyChar = Chr(97) '返回 a。
MyChar = Chr(62) '返回 >。
MyChar = Chr(37) '返回 %。

3、Hex 函数示例
下面的示例利用 Hex 函数返回数字的十六进制数:
Dim MyHex
MyHex = Hex(5) ' 返回 5。
MyHex = Hex(10) ' 返回A。
MyHex = Hex(459) ' 返回 1CB。


4、Oct 函数示例

下面的示例利用 Oct 函数返回数值的八进制数:
Dim MyOct
MyOct = Oct(4) ' 返回 4。
MyOct = Oct(8) ' 返回 10。
MyOct = Oct(459) ' 返回 713。

5、 CStr 函数示例

<%num1=666StrWelcome="欢迎第"&CStr(num1)&"个来访者"%>
CStr将变量num1由整数子类型强制转换为字符串子类型

6、CDate 函数示例

MyDate = "October 19, 1962" ' 定义日期。
MyShortDate = CDate(MyDate) ' 转换为日期数据类型。
MyTime = "4:35:47 PM" ' 定义时间。
MyShortTime = CDate(MyTime) ' 转换为日期数据类型。

7、CInt 函数示例

Dim MyDouble, MyInt
MyDouble = 2345.5678 ' MyDouble 是 Double。
MyInt = CInt(MyDouble) ' MyInt 包含 2346。

8、CLng 函数示例

Dim MyVal1, MyVal2, MyLong1, MyLong2
MyVal1 = 25427.45: MyVal2 = 25427.55 ' MyVal1, MyVal2 是双精度值。
MyLong1 = CLng(MyVal1) ' MyLong1 25427。
MyLong2 = CLng(MyVal2) ' MyLong2 包含 25428 。

9、CBool 函数示例

Dim A, B, Check
A = 5: B = 5 ' 初始化变量。
Check = CBool(A = B) '复选框设为 True 。
A = 0 '定义变量。
Check = CBool(A) '复选框设为 False 。
2007-12-29 12:50
xmuer
Rank: 1
等 级:新手上路
帖 子:236
专家分:0
注 册:2007-5-10
得分:0 
ASP之字符串函数示例
ASP之字符串函数示例

用字符串函数对字符串进行截头去尾、大小写替换等操作。
函数 语法 功能
Len Len(string|varname) 返回字符串内字符的数目,或是存储一变量所需的字节数。
Trim Trim(string) 将字符串前后的空格去掉
Ltrim Ltrim(string) 将字符串前面的空格去掉
Rtrim Rtrim(string) 将字符串后面的空格去掉
Mid Mid(string,start,length) 从string字符串的start字符开始取得length长度的字符串,如果省略第三个参数表示从start字符开始到字符串结尾的字符串
Left Left(string,length) 从string字符串的左边取得length长度的字符串
Right Right(string,length) 从string字符串的右边取得length长度的字符串
LCase LCase(string) 将string字符串里的所有大写字母转化为小写字母
UCase UCase(string) 将string字符串里的所有大写字母转化为大写字母
StrComp StrComp(string1,string2[,compare]) 返回string1字符串与string2字符串的比较结果,如果两个字符串相同,则返回0,如果小于则返回-1,如果大于则返回1
InStr InStr(string1,string2[, compare]) 返回string1字符串在string2字符串中第一次出现的位置
Split Split(string1,delimiter[, count[, start]]) 将字符串根据delimiter拆分成一维数组,其中delimiter用于标识子字符串界限。如果省略,使用空格("")作为分隔符。
count 返回的子字符串数目,-1 指示返回所有子字符串。
start为 1 执行文本比较;如果为 0 或者省略执行二进制比较。

Replace Replace(expression, find, replacewith[, compare[, count[, start]]]) 返回字符串,其中指定数目的某子字符串(find)被替换为另一个子字符串(replacewith)。

1、Len函数示例:

下面的示例利用 Len 函数返回字符串中的字符数目:

Dim MyString
MyString = Len("VBSCRIPT") 'MyString 包含 8。


2、Trim、Ltrim、Rtrim函数示例:

下面的示例利用 LTrim, RTrim, 和 Trim 函数分别用来除去字符串开始的空格、尾部空格、 开始和尾部空格:

Dim MyVar
MyVar = LTrim(" vbscript ") 'MyVar 包含 "vbscript "。
MyVar = RTrim(" vbscript ") 'MyVar 包含 " vbscript"。
MyVar = Trim(" vbscript ") 'MyVar 包含"vbscript"。
3、Mid函数示例:

下面的示例利用 Mid 函数返回字符串中从第四个字符开始的六个字符:

Dim MyVar
MyVar = Mid("VB脚本is fun!", 4, 6) 'MyVar 包含 "Script"。
4、Left函数示例:

下面的示例利用Left 函数返回MyString 的左边三个字母:

Dim MyString, LeftString
MyString = "VBSCript"
LeftString = Left(MyString, 3) 'LeftString 包含 "VBS
5、Right函数示例:

下面的示例利用 Right 函数从字符串右边返回指定数目的字符:

Dim AnyString, MyStr
AnyString = "Hello World" '定义字符串。
MyStr = Right(AnyString, 1) '返回 "d"。
MyStr = Right(AnyString, 6) ' 返回 " World"。
MyStr = Right(AnyString, 20) ' 返回 "Hello World"。


6、LCase函数示例:

下面的示例利用 LCase 函数把大写字母转换为小写字母:

Dim MyString
Dim LCaseString
MyString = "VBSCript"
LCaseString = LCase(MyString) ' LCaseString 包含 "vbscript"。


7、 UCase函数示例:


下面的示例利用 UCase 函数返回字符串的大写形式:

Dim MyWord
MyWord = UCase("Hello World") ' 返回"HELLO WORLD"。
8、StrComp函数示例:

下面的示例利用 StrComp 函数返回字符串比较的结果。如果第三个参数为 1 执行文本比较;如果第三个参数为 0 或者省略执行二进制比较。

Dim MyStr1, MyStr2, MyComp
MyStr1 = "ABCD": MyStr2 = "abcd" '定义变量。
MyComp = StrComp(MyStr1, MyStr2, 1) ' 返回 0。
MyComp = StrComp(MyStr1, MyStr2, 0) ' 返回 -1。
MyComp = StrComp(MyStr2, MyStr1) ' 返回 1。
9、InStr示例:

下面的示例利用 InStr 搜索字符串:

Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP"???
SearchChar = "P"??
MyPos = Instr(SearchString, SearchChar)???'返回 9.
注意:返回的不是一个字符串在另一个字符串中第一次出现的字符位置,而是字节位置。
10、Split函数示例:

Dim MyString, MyArray, Msg
MyString = "VBScriptXisXfun!"
MyArray = Split(MyString, "x",-1,1)
' MyArray(0) contains "VBScript".
' MyArray(1) contains "is".
' MyArray(2) contains "fun!".
Response.Write(MyArray(0))

11、Replace函数示例:

Replace("ABCD", "BC", "12") '得到A12D

[[italic] 本帖最后由 xmuer 于 2007-12-29 12:52 编辑 [/italic]]
2007-12-29 12:51
xmuer
Rank: 1
等 级:新手上路
帖 子:236
专家分:0
注 册:2007-5-10
得分:0 
ASP之日期和时间函数示例
可以使用日期和时间函数来得到各种格式的日期和时间

函数 语法 说明 示例
Now Now() 取得系统当前的日期和时间 Dim MyVar MyVar = Now
' MyVar 包含当前的日期和时间。
Date Date() 取得系统当前的日期 Dim MyDate MyDate = Date
' MyDate 包含当前系统日期。
Time Time() 取得系统当前的时间 Dim MyTime MyTime = Time
' 返回当前系统时间。
Year Year(Date) 取得给定日期的年份 Dim MyDate, MyYear
MyDate = #October 19, 1962#
'分派一日期。
MyYear = Year(MyDate)
' MyYear 包含 1962。
Month Month(Date) 取得给定日期的月份 Dim MyVar MyVar = Month(Now)
' MyVar包含当前月对应的数字。
Day Day(Date) 取得给定日期是几号 Dim MyDay MyDay = Day("October 19, 1962")
'MyDay包含 19。
Hour Hour(time) 取得给定时间是第几小时 Dim MyTime, MyHour
MyTime = Now MyHour = Hour(MyTime)
' MyHour 包含代表当前时间的数值。
Minute Minute(time) 取得给定时间是第几分钟 Dim MyVar
MyVar = Minute(Now)
Second Second(time) 取得给守时间是第几秒 Dim MySec
MySec = Second(Now)
'MySec 包含代表当前秒的数字。
WeekDay WeekDay(Date) 取得给定日期是星期几的整数,1表示星期日,2表示星期一,依此类推 Dim MyDate, MyWeekDay
MyDate = #October 19, 1962#
' 分派日期
MyWeekDay = Weekday(MyDate)
' MyWeekDay 包含 6,MyDate 代表星期五
DateDiff DateDiff("Var",Var1,Var2)
Var:日期或时间间隔因子,有如下参数:
yyyy 年 m月 d 日 ww星期 h小时 s秒

Var1:第一个日期或时间
Var2:第二个日期或时间,比Var1晚 计算两个日期或时间的间隔 DateDiff("d",Date(),#1/1/2005#)
'返回离2005元旦还有多少
DateDiff("h",Date(),#1/1/2005#)
'返回离2005元旦还有多少小时
DateDiff("d",#1/1/2003#,#1/1/2005#)
'返回两个日期之间的天数
DateAdd DateDiff("Var",Var1,Var2)
Var:日期或时间间隔因子:
Var1:日期或时间间隔倍数
Var2:日期或时间的基准 对两个日期或时间作加法 如下示例将 95 年 1 月 31 日加上一个月:

NewDate = DateAdd("m", 1, "31-Jan-95")
在这个示例中,DateAdd 返回 95 年 2 月 28 日,而不是 95 年 2 月 31 日。如果 date 为 96 年 1 月 31 日,则返回 96 年 2 月 29 日,这是因为 1996 是闰年。

如果计算的日期是在公元 100 年之前,则会产生错误。

FormatDateTime FormatDateTime(Date,vbShortDate) 转化为短日期格式 FromatDateTime(Date(),vbLongDate)
"以长日期格式显示
FormatDateTime(Date,vbLongDate) 转化为长日期格式
FormatDateTime(Date,vbShortTime) 转化为短时间格式
FormatDateTime(Date,vbLongTime) 转化为长时间格式
2007-12-29 12:54



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-194981-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.639291 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved