关于VBSCRIPT的一些东东

上一篇 / 下一篇  2010-04-08 10:03:04 / 个人分类:QTP学习历程

前言:

   在学习了一段时间的QTP之后,更加证明了实践才是唯一的出路。只有自己亲自动手才会发现有些问题和小细节的东西。同时具有一定的编程基础去学习,很多事情就事半功倍了。昨天看了一些VBSCRIPT的一些东西。虽然看起来有些杂乱无章,还是记录如下:

 

1、关于VBS的DateValue()函数,当字符省略掉年份时,系统将会取当前日期。另外,如果在运行过程中提示类型不匹配,首先检查一下函数名是否正确,另外,关于使用英文的月份,看月份的单词是否正确。月日年之间可以使用空格和逗号进行分隔。当字符串表达式中包含有效的时间,将只会返回日期,若是无效时间,将会提示“类型不匹配”。


2、关于Hex函数,HEX()是返回表示数字十六进制的字符串。根据HELP文档,HEX(number),当number为Null时,将返回Null值,但在使用过程中使用Hex(Null)时,系统提示“无效使用Null:...."
Q1:当需要输出NULL值的时候,应该如何去实现?我在使用Msgbox和Print都不行。

3、关于OCT()函数,是返回八进制值的字符串。


4、Fix和Int都是返回数字的整数部分。
Int 和 Fix 函数的区别在于如果 number 参数为负数时,Int 函数返回小于或等于 number 的第一个负整数,而 Fix 函数返回大于或等于 number 参数的第一个负整数。例如,Int 将 -8.4 转换为 -9,而 Fix 函数将 -8.4 转换为 -8。
Fix(number) 等同于:
Sgn(number) * Int(Abs(number)Int)
其中,Sgn函数,返回表示数据符号的整数。
当number>0时,返回1
number=0时,返回0
number<0时,返回-1。


5、使用TimeValue()函数时,一定要为time参数加上双引号。否则系统将会一直提示缺少“(”
有误的是:B=TimeValue(11:25:00)
正确的应该是:B=TimeValue("11:25:00)


6、关于VBSCRIPT中的关于很多日期期的函数或涉及到日期的函数,对于日期参数加双引号和不加双引号的结果不一样,其中有如下的函数及例子:DateAdd()、DateDiff()、DatePart()、Day()、Year()、FormatDateTime().

Q2:为什么日期参数不加引号和加了引号的日期参数得到的结果不一样?
NewDate=DateAdd("yyyy",5,"2010-3-2")
NewDate1=DateAdd("yyyy",5,2010-3-2)
Print "NewDate的值为:"&NewDate
Print "NewDate1的值为:"&NewDate1
Result:
NewDate的值为:2015-3-2
NewDate1的值为:1910-6-27

DateDiff1=DateDiff("yyyy","2009-11-10","2010-11-10")
DateDiff2=DateDiff("yyyy",2009-11-10,2010-11-10)
Print "DateDiff1的值为:"&DateDiff1
Print "DateDiff2的值为:"&DateDiff2
Result:
DateDiff1的值为:1
DateDiff2的值为:0

DatePart1=DatePart("yyyy","2009-12-12")
DatePart2=DatePart("yyyy",2009-12-12)
Print "DatePart1的值为:"&DatePart1
Print "DatePart2的值为:"&DatePart2
Result:
DatePart1的值为:2009
DatePart2的值为:1905

Day1=Day("2009-12-12")
Day2=Day(2009-12-12)
Msgbox Day1
Msgbox Day2
Result:
12
7


Year1=Year("2010-3-2")
Year2=Year(2010-3-2)
Print "Year1="&Year1
Print "Year2="&Year2
Result:
Year1=2010
Year2=1905

如果是Time,当不使用双引号时,在运行过程中会提示缺少”)“

FormatDateTime1=FormatDateTime("2009-12-12")
FormatDateTime2=FormatDateTime(2009-12-12)
Print "FormatDateTime1="&FormatDateTime1
Print "FormatDateTime2="&FormatDateTime2
Result:
FormatDateTime1=2009-12-12
FormatDateTime2=1905-6-7

7、关于Randomize和Rnd()的区别。
Randomize是一个语句,单独一行,且不能将其值赋值给某一变量,而Rnd()是一个函数,可以将其赋值给一变量。
Randomize的语法是Randomize[number]
Rnd()的语法是:Rnd[(number)]
Rnd 函数返回一个小于 1 但大于或等于 0 的值。


8、使用CreateObject函数创建对象时,一定要记得释放对象变量。如下所示:
Dim ExcelSheet
Set ExcelSheet=CreateObject("Excel.Sheet")
' 通过 Application 对象使 Excel 可见。
ExcelSheet.Application.Visible = True
' 在工作表的第一个单元中放置文本。
ExcelSheet.Cells(1,1).Value = "这是 A 列第一行"
' 保存工作表。
ExcelSheet.SaveAs "C:\DOCS\TEST.XLS"
' 在 Application 对象中使用 Quit 方法退出 Excel。
ExcelSheet.Application.Quit
' 释放对象变量。
Set ExcelSheet = Nothing


9、当使用FileSystemObject对象时,当创建文件,多次运行时将会把文件覆盖掉并不会提示错误信息。
Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.CreateTextFile("c:\testfile.txt", True)
a.WriteLine("这是一个测试。")
a.Close

后记:

文章中提到的两个问题,希望各位仁兄帮忙献计献策,先谢过

Q1:在使用Hex()和Oct()等函数时,在HELP中是说当number为null时,返回NULL。当需要输出NULL值的时候,应该如何去实现?我在使用过程中使用Msgbox不行。如下例子:

Hex1=Hex(NULL)
Msgbox Hex1

在运行过程会提示“无效使用NULL”。

Q2:为什么日期参数不加引号和加了引号的日期参数得到的结果不一样?如上的第六点的各个函数值。

 


TAG:

 

评分:0

我来说两句

Open Toolbar