|
主题: 不好意思,第一次使用函数就出了问题
|
crazyf
职务:普通成员
等级:1
金币:0.0
发贴:32
|
#12003/9/29 11:00:51
我想用函数实现一个数组排序,例子如下: oriarray{3,4,5,8} charray{4,5}
调用changearray后,charray应该为{0,4,5,0},即charray中的数据与oriarray中的数据位置一致。可是出现了错误, “Microsoft VBScript 编译器错误 错误 '800a0414' 调用子程序时不能使用括号 ”
我不知道为什么,不好意思,请大家指点一下。
<% function changearray(oriarray,charray) temparray=array(ubound(oriarray)) for i=0 to ubound(charray) for j=0 to ubound(oriarray) if(charray(i)=oriarray(j)) then temparray(j)=oriarray(j) else temparray(j)=0 end if next next erase charray '将charray charray=array(ubound(temparray)) for i=0 to ubound(temparray) charray(i)=temparray(i) next erase temparray return charray end Function
%>
<% '调用changearray函数 changearray(array1,array2) %>
|
风之翅
职务:普通成员
等级:2
金币:10.0
发贴:540
|
#22003/9/30 10:51:31
[Call] name [argumentlist] 在调用过程时,不必使用 Call 关键字。然而,如果使用 Call 关键字调用要求参数的过程,则必须用括号将 argumentlist 括起来。如果省略 Call 关键字,那么必须也同时省略 argumentlist 参数两边的括号。使用 Call 语法调用内部函数或使用用户自定义函数,函数返回值都会被放弃。 但是程序本身好像有问题,我正在试。。。
|
风之翅
职务:普通成员
等级:2
金币:10.0
发贴:540
|
#32003/9/30 13:08:29
<%@LANGUAGE="VBSCRIPT"%> <% Dim oriarray,charray,temp oriarray = Array(3,4,5,8)'可以多定义,试试 charray = Array(4,5) %> <% Function changearray(array1,array2) nub1 = ubound(array1)'数组上界 nub2 = ubound(array2) temp = array1'只是为了定义临时数组的大小 j = 0 For i = 0 To nub2'分2次循环,第一次循环到array2上界 If array1(i) = array2(j) Then temp(i) = array2(j) j = j + 1'有相同则检查array2数组的下一个数字 Else temp(i) = 0 End If next For i = nub2+1 To nub1'第二次循环到array1上界 If j < nub2+1 Then'防止array2出界 If array1(i) = array2(j) Then temp(i) = array2(j) j = j + 1 Else temp(i) = 0 End If Else temp(i) = 0 End If next array2 = temp end Function %> <% Call changearray(oriarray,charray) %>
数组排序
<% For k = 0 To ubound(charray) Response.Write charray(k) Next %>
|
crazyf
职务:普通成员
等级:1
金币:0.0
发贴:32
|
#42003/10/8 10:04:44
非常感谢你的帮助,你不仅告诉了我如何调用函数,而且还帮我进一步完善了函数,真的谢谢你了!
|