VBScript函数自定义及调用问题?

tianwailiuxingy 2010-07-19 03:10:41



<%
function pad(strr,lenght)
dim i
for i=len(strr+" ") to lenght
strr="0"+strr

next
Result =strr
pad=Result

end function
%>


这个函数定义有什么错误码
调用如下


<%
dim st
st="1"

st=pad(str,6)
response.Write(st)


%>



怎么用了上面的那个函数,网页就不能显示了,有时显示了,但是说


Microsoft VBScript 编译器错误 错误 '800a03ea'
类型不匹配。
...全文
332 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
lww528499 2010-09-11
  • 打赏
  • 举报
回复
for i=len(strr+" ") to lenght中strr的值从哪里
  • 打赏
  • 举报
回复
只是想要格式化数字嘛,有专门的数字格式化函数不用,却来自找麻烦,时间充裕得能让死神自杀了。
Rotel-刘志东 2010-08-30
  • 打赏
  • 举报
回复
<%
function pad(strr,lenght)
dim i
for i=len(strr+" ") to lenght
strr="0"+strr

next
Result =strr
pad=Result

end function
%>
strr应该是参数吧!笔者写错了

Dogfish 2010-08-23
  • 打赏
  • 举报
回复
代码里的str确实没有出处。可能是st的误笔。
gzpydc 2010-08-17
  • 打赏
  • 举报
回复

楼主,请新建一个空白的HTML文件,然后把下面的VBScript代码和Html代码都复制到这个HTML文件,保存后运行一下看看效果。

其实是在网页上放一个按钮去执行你写的VBScript而已,希望我的回复对你有用。



<Script Language="VBScript">
Function pad(strr,lenght)
dim i
for i=len(strr+" ") to lenght
strr="0"+strr
next
Result =strr
pad=Result
end function

Sub test
dim st
st="1"
st=pad(st,6)
msgbox (st)
End Sub
</script>




<input type="button" value="test" onclick="test">
sonic_andy 2010-07-31
  • 打赏
  • 举报
回复
最好可以知道是第几行第几列出的错.

[Quote=引用 7 楼 yangguo8013 的回复:]

我记得vb function是不用加<% %>的
[/Quote]
不加的是浏览器端执行的?如果浏览器不支持vbs,则无法运行..
yangguo8013 2010-07-28
  • 打赏
  • 举报
回复
我记得vb function是不用加<% %>的
tianwailiuxingy 2010-07-24
  • 打赏
  • 举报
回复
表单传过来的
_freaky_ 2010-07-23
  • 打赏
  • 举报
回复
你把str改成具体的试一下 还有str的值到底是哪里来的
tianwailiuxingy 2010-07-21
  • 打赏
  • 举报
回复

<%
str=cstr(str)


%>

tianwailiuxingy 2010-07-20
  • 打赏
  • 举报
回复
不行,一样的错误
_freaky_ 2010-07-20
  • 打赏
  • 举报
回复
你的 str 是什么?
_freaky_ 2010-07-19
  • 打赏
  • 举报
回复
是不是str为数字时就显示类型不匹配啊?
你把
for i=len(strr+" ") to lenght
strr="0"+strr
中的+号改成&试试
for i=len(strr & " ") to lenght
strr="0" & strr

ASP页面内VBScript和JScript的交互

ASP 具备管理不同语言脚本程序的能力,能够自动调用合适的脚本引擎以解释脚本代码和执行内置
函数。ASP开发环境提供了两种脚本引擎,即VBScript(缺省)和JScript。不过,开发者并没有被限制
于只能使用这两种语言,只要能够提供合适的ActiveX脚本引擎就能使用任何脚本语言。
  脚本语言的选择往往基于许多不同原因:它可能是开发者最为熟悉的语言,可能是对给定工程来说
能够提供最多特色支持的,也有可能是最具效率的。不同的环境和要求使得我们在选择脚本语言时注重
不同的因素,同时也使得我们在某些时候面临选定的脚本语言不能直接提供其它语言固有的函数这一问
题,或某个脚本已经写成但用的却是另外一种脚本语言。
  此时应该怎么办?是否需要用当前所用的脚本语言重写这些脚本?或者说,是否有可能在一种脚本
语言中调用其它脚本语言的内置函数?本文要说明的就是在ASP应用中如何让VBScript脚本和JScript脚
本交互以最大限度地获得两种脚本语言的特色支持。

  一、VBScript和JScript的内置函数
  在VBScript和JScript 中,有大量的内置函数功能是相同或类似的。然而,在一种脚本语言中内置
函数并非总是在另外一种脚本语言中也有对应的函数。例如,VBScript提供了许多用于操作字符串和
格式化数据的函数,这些函数在JScript中并不存在。这些函数包括StrReverse()、Filter()以及Forma
tCurrency()等。在另一方面,JScript所提供的用于管理数组、字符串编码等的函数VBScript中也没
有定义,如join()、reverse()、pow()、位操作、escape()和unescape()等。
   那么,如果在JScript程序中需要一个VBscript函数该怎么办呢?

   二、异种脚本的互相调用
   如果需要在JScript脚本中调用一个VBScript中内置的函数,则应该写一个VBScript用户定义函数
(在这里调用VBScript内置函数),然后在JScript脚本中象调用公用JScript函数一样调用这个用户定
函数

例如,如果要调用VBSCript内置函数是FormatCurrency(),则可以声明如下自定义函数

接下来在JScript代码中就可以象普通JScript 函数一样调用FormatValue()了。用类似的方法也可
以实现VBScript代码调用JScript函数
  应用同样的规则,我们可以在任何脚本内调用任何用户定义函数。不过,从JScript 脚本内调用
个不带参数的VBScript过程(Sub)时应略加注意,此时在JScript中应该象调用一个不带参数的JScrip
t函数一样调用它,如用foo()调用VBScript Sub foo过程。

  三、数据共享
  在某些情形下混合运用VBScript和JScript 函数是非常有用的,但在不同语言脚本之间共享数据也
可能很有用。实现这种共享的方法很简单:不管使用的是什么语言,只要是在页面级声明的变量就可以
任意引用。
  对象的使用方法也相似,可以任意选用合适的语言读取、修改属性或调用对象的方法。当然给定对
象的属性和方法是由创建该对象实例的语言所定义的。正如上例VBScript的过程调用,当从JScript 中
调用一个不带参数的VBScript对象的方法时,其调用方法也遵从JScript的调用规则,反之亦然。

  四、数组管理
  数组共享问题稍微复杂一点。虽然数组也象其它变量一样可以在不同语言脚本之间共享,但必须注
意兼容方面的问题
  VBScript数组在JScript下可以用VBScript的符号引用,即用myArray(2)引用数组元素而不是JScri
pt的数组元素引用符号myArray[2]。此外,还可以使用一个特殊的JScript对象——VBArray对象将VBSc
ript数组转换为JScript数组。下面的代码从VBScript数组myVBArray创建JScript数组myJSArray:
 var Temp = new VBArray(myVBArray)
 var myJSArray
 myJSArray = Temp.toArray()
上述代码首先创建一个临时的VBArray对象,然后使用它的toArray()方法将自己转换为JScript 数
组。此后就可以象普通JScript数组一样用myJSArray,如 myJSArray[1]。但应当注意的是,toArray()
方法将把一个多维的VBArray转换为一维的JScript数组。

VBScript中引用JScript数组更为复杂。虽然在VBScript中我们可以直接访问JScript数组相关的
方法和属性,但没有直接访问JScript数组的单个元素的方法。也就是说,我们可以在VBScript 脚本中
读取JScript数组的长度属性,如下所示:

x = myJSArray.length

  但无法直接读取该数组的单个元素,下面的VBScript代码是不正确的:

  x = myJSArray(3)

解决该问题的一个可行的方法是执行一个转换过程,如下面的代码所示,此处假定VBScript是缺省
的脚本语言:
<%
  Dim Temp
  Dim myVBArray
  Temp = myJSArray.join(", ")
  myVBArray = Split(Temp, ", ")
%>
此处的JScript join()方法将数组myJSArray元素转换到一个以逗号为分割符的字符串, VBScript
Split()函数将字符串转换为VBScript数组。注意这里我们是在VBScript环境下调用JScript的join方法
依照此例,我们可以通过自定义VBScript函数来模拟JScript的VBArray对象的toArray()方法以实现JSc
ript数组到VBScript数组的转换。

五、小结
  在同一个ASP 工程内灵活选用不同脚本语言具有许多优点,这些脚本之间的交互能力更为开发者集
成不同语言所提供的内置函数和其它功能带来了更多的机会,同时也使得实现既可用于VBScript也可用
于JScript环境的通用脚本库成为可能。
JosunScript 脚本组件是一个采用ATL技术编写的高效稳定的脚本解析器。 能让你的CS模式程序(Vc、VB、Delphi、BC等)轻松解析VbScript,JavaScript脚本语言。 大大增强你的程序逻辑处理的灵活性和程序的交互能力,轻松实现从BS系统提供的页面接口获取数据信息。 最大程度实现程序功能的免编译(只要修改脚本文件即可),为你的用户提供“热插拔”式的升级。 尤其适合于各种流程化的程序设计(工作流函数的操作、呼叫中心系统IVR流程化的设计等等)。 本控件使用简便,开发者可根据本文档提供的例子根据自己的实际需求在例子上稍作修改即可。 主要的功能有: 1.加载脚本文件 2.获取脚本中的函数列表 3.获取脚本中的全局变量列表 4.按变量名称 设置、获取 脚本文件里的全局变量值 5.直接执行 文本、变量 中设置的脚本代码 6.能获取文本脚本执行结束后脚本里面的变量返回值,返回给调用者,实现脚本技术与其他语言技术的交互. 7.按列表返回的函数、过程名称执行相应的函数、过程。自定义入口参数,并返回执行结果给调用者,实现脚本技术与其他语言技术的交互. 8.实现远程、本地 xml文件的解析,免去在程序内部编写复杂的xml操作类,尤其是像VB这样的程序, 可以大大节约开发时间(本压缩包内的VB的例子就是最典型最简单的解析xml的例子)。 9.可以利用xmlhttp实现asp、jsp等页面的数据的存取解析,轻松访问第三方的数据 10.利用强大的VBScript脚本技术可以实现数据库接口,轻松将程序中的变量写入第三方的数据库中 如果您正在被流程设计中繁杂的逻辑判断、为第三方提供数据接口而烦恼,如果你想在您的产品中嵌入 功能强大、高度灵活的脚本功能增强您的产品的竞争力,JosunScript控件可以助您一臂之力。
网页自由打印控件使用方法功能:本控件可以在浏览器中直接实现任意定位打印;用途:适用于B/S系统的报表打印,尤其适用于票据打印和套打;现在这个新编写的DLL控件比以前发布的OCX更稳定使用前,先注册一下,运行目录下的“注册控件.bat”即可注册然后在网页中直接调用卸载时运行“反注册控件.bat”使用方法:在网页中可以直接用JavaScript和VBScript调用被控件JavaScript调用语句:TML = new ActiveXObject("TML.TMLi");VBScript调用语句:set TML=CreateObject("TML.TMLi") ‘创建对象,DLL库名为TML,其中TMLi为对象控件中包含两个函数addTXT "作者,字体,字号,X坐标,Y坐标,文字"p dmPaperWidth文档宽,dmPaperLength文档长addTXT语句为添加文字到打印文档中,参数有"作者,字体,字号,X坐标,Y坐标,文字"p语句为打印函数,格式:dmPaperWidth文档宽,dmPaperLength文档长以下为完整的VBScript打印程序:(查看源代码) <script language="vbscript">set TML=CreateObject("TML.TMLi") ‘创建对象,DLL库名为TML,其中TMLi为对象TML.addTXT "李天盟,华文中宋,24,100,200,额外认为" ‘本addTXT语句为添加文字到打印文档中TML.addTXT "李天盟,华文中宋,12,110,300,额外认为" ‘格式为"作者,字体,字号,X坐标,Y坐标,文字"TML.addTXT "李天盟,华文中宋,12,120,320,┏━━━━━━━━━━━━━━━━┓"TML.addTXT "李天盟,华文中宋,12,120,325,┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ "TML.p 3000,2000 ‘语句p为打印函数,格式:dmPaperWidth文档宽,dmPaperLength文档长set TML=nothing
JavaScript实用范例词典01 第1章 基础篇.... 1 1.1 使用JavaScript 1 1.2 使用VBScript 2 1.3 在JavaScript中使用变量... 2 1.4 检查变量的类型... 3 1.5 算术运算符... 4 1.6 比较运算符... 5 1.7 逻辑运算符... 6 1.8 递增、递减运算符... 7 1.9 算术赋值运算符... 8 1.10 三元运算符(条件运算符) 9 1.11 检查变量是否存在... 10 1.12 表达式的计算顺序... 11 1.13 条件选取(if) 12 1.14 多条件的选取if 13 1.15 双重选取(if) 14 1.16 多重选取if 15 1.17 switch流程控制... 16 1.18 重复执行(for) 17 1.19 重复执行(while) 18 1.20 危险(使用无穷循环冻结页面) 19 1.21 将1~10之间的奇偶数分开... 20 1.22 声明数组... 21 1.23 取得数组的大小... 22 1.24 使用循环存取数组... 23 1.25 连结两个数组... 24 1.26 数组的排序(使用sort方法) 25 1.27 删除数组变量... 26 1.28 绝对值函数的使用abs() 27 1.29 四舍五入函数的使用round() 27 1.30 取整数函数的使用(ceil()与floor()) 28 1.31 平方根函数的使用(sqrt()) 29 1.32 取得两个数中的最大数(max())或 最小数(min()) 30 1.33 随机函数(random()) 31 1.34 圆形面积计算... 32 1.35 矩形面积计算... 33 1.36 三角形面积计算... 34 1.37 球体面积计算... 34 1.38 声明一个自定义函数... 35 1.39 单击按钮时调用函数... 36 1.40 多个函数同时调用... 37 1.41 使用对象... 38 1.42 声明一个对象... 39 1.43 判断一个对象是否存在... 40 1.44 使用with省略对象名称... 41 1.45 用变量省略对象名称... 42 1.46 取得对象的编号... 43 1.47 定义CSS样式表... 44 1.48 取得类的名称... 45 1.49 在指定的时间调用函数... 46 1.50 在指定的时间反复调用函数... 47 1.51 加载一个外部的CSS样式表文件... 48 1.52 指定一个js文件作为JavaScript 来源... 49 1.53 指定外部Behavior文件作为 JavaScript的来源... 50 1.54 将数字转换为字符串... 51 1.55 将字符串转换成数字... 51 1.56 例外处理... 52

4,008

社区成员

发帖
与我相关
我的任务
社区描述
它是一种微软环境下的轻量级的解释型语言,它使用COM组件、WMI、WSH、ADSI访问系统中的元素,对系统进行管理。
社区管理员
  • vbScript社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧