Sideway BICK BlogSideway BICK BLOG from Sideway

A Sideway to Sideway Home

Link:http://output.to/sideway/default.asp?qno=180300022

Script, Scripting Language, VBScript elements, Server-Side VBScript Function LBound, UBound Function

VBScript Array Functions

Functions for manipulating array expression.

LBound Function

last updated 9/20/2017

Create a number from a given arrayname to represent the smallest available subscript of the given arrayname according to the specified dimension.

Syntax

LBound(arrayname[, dimension])

Argument

arraynameRequired.Any valid array expression or name of an array variable that is the given array to be evaluated.dimensionOptional. Any valid numeric expression that is used to specify the dimension of the array to be obtained. If dimension argument is omitted, 1 is used and is used for specifying the first dimension. And 2 for the second dimension, and so on. If dimension argument is smaller than 1 or greater than the dimension of the given arrayname, Lbound returns Run-time error.

Returns

Returns a Variant of Long data subtype containing the number obtaining from a given arrayname to represent the smallest available subscript of the given arrayname according to the specified dimension

Special returns of function:

arraynamedimensionreturn valueNullAnyRun-time ErrorEmptyAnyRun-time Error""AnyRun-time ErrorNot an arrayAnyRun-time ErrorArray(Null), Array(Empty), Array("")Nil0Array()Nil0AnyNull, Empty, ""Run-time ErrorAny≤0Run-time ErrorAny>dimension of arraynameRun-time Error

Remarks

  • The LBound function is used to get the lower limit of a dimension of an array.
  • The LBound function always returns 0 for any valid array expression since a zero-based array is used for VBScript.
  • The LBound function can be used together with the UBound function to determine the size of an array.
  • The UBound function is used to get the upper limit of a dimension of an array.

Requirement

1

UBound Function

last updated 9/21/2017

Create a number from a given arrayname to represent the largest available subscript of the given arrayname according to the specified dimension.

Syntax

UBound(arrayname[, dimension])

Argument

arraynameRequired.Any valid array expression or name of an array variable that is the given array to be evaluated.dimensionOptional. Any valid numeric expression that is used to specify the dimension of the array to be obtained. If dimension argument is omitted, 1 is used and is used for specifying the first dimension. And 2 for the second dimension, and so on. If dimension argument is smaller than 1 or greater than the dimension of the given arrayname, Lbound returns Run-time error.

Returns

Returns a Variant of Long data subtype containing the number obtaining from a given arrayname to represent the largest available subscript of the given arrayname according to the specified dimension

Special returns of function:

arraynamedimensionreturn valueNullAnyRun-time ErrorEmptyAnyRun-time Error""AnyRun-time ErrorNot an arrayAnyRun-time ErrorArray(Null), Array(Empty), Array("")Nil0Array()Nila zero-length arrayAnyNull, Empty, ""Run-time ErrorAny≤0Run-time ErrorAny>dimension of arraynameRun-time Error

Remarks

  • The UBound function is used to get the upper limit of a dimension of an array.
  • The UBound function can be used together with the LBound function to determine the size of an array.
  • The LBound function is used to get the lower limit of a dimension of an array.
  • The LBound function always returns 0 for any valid array expression since a zero-based array is used for VBScript.
  • The length of a dimension of an array is therefore equal to one plus the return of UBound funtion.

Requirement

1

Examples

Examples of LBound, UBound functions

ASP VbScript Command:
<script runat="server" language="VBScript">
Function cmda1:cmda1="LBound(str,vec)":cmda1=Left(cmda1,Len(cmda1)-4*(2-x)-1)&")":End Function
Function cmda2:cmda2="Ubound(str,vec)":cmda2=Left(cmda2,Len(cmda2)-4*(2-x)-1)&")":End Function
Dim vars,str,cmda,var:var=0
cmda=array("str","Eval(""cmda1"")","Eval(cmda1)","Eval(""cmda2"")","Eval(cmda2)")
Dim ucnt,tmp,i:ucnt=UBound(cmda):If var=1 Then:tmp="":Else:tmp="<b>vars</b>":End If:For i=0 to ucnt:tmp=tmp&"<b>"&rmv_ctrl(cmda(i))&", TypeName</b>":Next:Response.Write "Results on Microsoft Windows 8.1 Pro x64, Microsoft-IIS/8.5, VBScript Version 5.8 of page /internet/users/sideblog/default.asp<br />"&"<i>"&tmp&"</i>"
Function dsp_x:Dim tmp_a,tmp_b,i:If varx=0  Then:Execute vars:End If:If var=1 Then:tmp_a="":Else:tmp_a=rmv_ctrl(vars):End If:For i=0 to ucnt:tmp_b=cmd_b(cmda(i)):if i/2=fix(i/2) Then:tmp_b="<b>"&tmp_b&"</b>":End If:tmp_a=tmp_a&tmp_b:Next:Response.Write "<i>"&tmp_a&"</i>":End Function
Function rmv_ctrl(blk_str):Select Case blk_str:Case chr(0):blk_str="NUL":Case chr(1):blk_str="SOH":Case chr(2):blk_str="STX":Case chr(3):blk_str="ETX":Case chr(4):blk_str="EOT":Case chr(5):blk_str="ENQ":Case chr(6):blk_str="ACK":Case chr(7):blk_str="BEL":Case chr(8):blk_str="BS":Case chr(9):blk_str="HT":Case chr(10):blk_str="LF":Case chr(11):blk_str="VT":Case chr(12):blk_str="FF":Case chr(13):blk_str="CR":Case chr(14):blk_str="SO":Case chr(15):blk_str="SI":Case chr(16):blk_str="DLE":Case chr(17):blk_str="DC1":Case chr(18):blk_str="DC2":Case chr(19):blk_str="DC3":Case chr(20):blk_str="DC4":Case chr(21):blk_str="NAK":Case chr(22):blk_str="SYN":Case chr(23):blk_str="ETB":Case chr(24):blk_str="CAN":Case chr(25):blk_str="EM":Case chr(26):blk_str="SUB":Case chr(27):blk_str="ESC":Case chr(28):blk_str="FS":Case chr(29):blk_str="GS":Case chr(30):blk_str="RS":Case chr(31):blk_str="US":Case chr(127):blk_str="DEL":End Select:rmv_ctrl=blk_str:If IsNull(blk_str) OR IsEmpty(Blk_str) OR blk_str="" OR IsNumeric(Blk_str) Then:Else:rmv_ctrl=Replace(Replace(Replace(Replace(Replace(blk_str,"&","&amp;"),"  "," &nbsp;"),"""","&quot;"),"<","&lt;"),">","&gt;"): End If :End Function
Function cmd_b(blk_str):cmd_b="["&cmd_x(blk_str)&"], "&cmd_x("TypeName("&blk_str&")"):End Function
Function cmd_x(blk_str):On Error Resume Next:Dim xans, tmp:xans="":tmp="":execute "xans="&blk_str:If Err.Number <> 0  Then:xans=cmd_x("TypeName("&blk_str&")"):Select Case xans:Case 9::Case Else:xans="error":End Select:End If:If IsArray(xans)=False Then:cmd_x=rmv_ctrl(xans): Else:tmp=lst_arry(xans):cmd_x=trim(tmp):End If:End Function
Function lst_arry(blk_str):Dim tmp,i,q:q="""":tmp="":For i=0 to UBound(blk_str):if VarType(blk_str(i))>1 And VarType(blk_str(i))<6 Then:q="'":End If:tmp=tmp&" "&q&rmv_ctrl(blk_str(i))&q:Next:lst_arry=trim(tmp):End Function

vars="str=array(Null)":x=1:dsp_x
vars="str=array()":dsp_x
vars="str=array(Empty)":dsp_x
vars="str=array("""")":dsp_x
vars="str=array(1)":dsp_x
vars="str=array(1,2,3)":dsp_x
vars="str=array(1,2,3):vec=1":x=2:dsp_x
vars="str=array(1,2,3):vec=1.1":x=2:dsp_x
vars="Dim strs(3,0):str=strs":x=1:dsp_x
vars="Dim strs(3,0):str=strs:vec=1":x=2:dsp_x
vars="Dim strs(3,0):str=strs:vec=2":dsp_x
vars="Dim strs(9,4):str=strs":x=1:dsp_x
vars="Dim strs(9,4):str=strs:vec=1":x=2:dsp_x
vars="Dim strs(9,4):str=strs:vec=2":dsp_x
vars="Dim strs(0,8):str=strs":x=1:dsp_x
vars="Dim strs(0,8):str=strs:vec=1":x=2:dsp_x
vars="Dim strs(0,8):str=strs:vec=2":dsp_x
vars="Dim strs(0,8,15):str=strs":x=1:dsp_x
vars="Dim strs(0,8,15):str=strs:vec=1":x=2:dsp_x
vars="Dim strs(0,8,15):str=strs:vec=1.4":x=2:dsp_x
vars="Dim strs(0,8,15):str=strs:vec=1.5":x=2:dsp_x
vars="Dim strs(0,8,15):str=strs:vec=1.6":x=2:dsp_x
vars="Dim strs(0,8,15):str=strs:vec=2":dsp_x
vars="Dim strs(0,8,15):str=strs:vec=2.4":x=2:dsp_x
vars="Dim strs(0,8,15):str=strs:vec=2.5":x=2:dsp_x
vars="Dim strs(0,8,15):str=strs:vec=2.6":x=2:dsp_x
vars="Dim strs(0,8,15):str=strs:vec=3":dsp_x
</script>
HTML Web Page In-line Output:
Results on Microsoft Windows 8.1 Pro x64, Microsoft-IIS/8.5, VBScript Version 5.8 of page /internet/users/sideblog/default.asp
varsstr, TypeNameEval("cmda1"), TypeNameEval(cmda1), TypeNameEval("cmda2"), TypeNameEval(cmda2), TypeNamestr=array(Null)[""], Variant()[LBound(str)], String[0], Long[Ubound(str)], String[0], Longstr=array()[], Variant()[LBound(str)], String[0], Long[Ubound(str)], String[-1], Longstr=array(Empty)[""], Variant()[LBound(str)], String[0], Long[Ubound(str)], String[0], Longstr=array("")[""], Variant()[LBound(str)], String[0], Long[Ubound(str)], String[0], Longstr=array(1)['1'], Variant()[LBound(str)], String[0], Long[Ubound(str)], String[0], Longstr=array(1,2,3)['1' '2' '3'], Variant()[LBound(str)], String[0], Long[Ubound(str)], String[2], Longstr=array(1,2,3):vec=1['1' '2' '3'], Variant()[LBound(str,vec)], String[0], Long[Ubound(str,vec)], String[2], Longstr=array(1,2,3):vec=1.1['1' '2' '3'], Variant()[LBound(str,vec)], String[0], Long[Ubound(str,vec)], String[2], LongDim strs(3,0):str=strs[], Variant()[LBound(str)], String[0], Long[Ubound(str)], String[3], LongDim strs(3,0):str=strs:vec=1[], Variant()[LBound(str,vec)], String[0], Long[Ubound(str,vec)], String[3], LongDim strs(3,0):str=strs:vec=2[], Variant()[LBound(str,vec)], String[0], Long[Ubound(str,vec)], String[0], LongDim strs(9,4):str=strs[], Variant()[LBound(str)], String[0], Long[Ubound(str)], String[9], LongDim strs(9,4):str=strs:vec=1[], Variant()[LBound(str,vec)], String[0], Long[Ubound(str,vec)], String[9], LongDim strs(9,4):str=strs:vec=2[], Variant()[LBound(str,vec)], String[0], Long[Ubound(str,vec)], String[4], LongDim strs(0,8):str=strs[], Variant()[LBound(str)], String[0], Long[Ubound(str)], String[0], LongDim strs(0,8):str=strs:vec=1[], Variant()[LBound(str,vec)], String[0], Long[Ubound(str,vec)], String[0], LongDim strs(0,8):str=strs:vec=2[], Variant()[LBound(str,vec)], String[0], Long[Ubound(str,vec)], String[8], LongDim strs(0,8,15):str=strs[], Variant()[LBound(str)], String[0], Long[Ubound(str)], String[0], LongDim strs(0,8,15):str=strs:vec=1[], Variant()[LBound(str,vec)], String[0], Long[Ubound(str,vec)], String[0], LongDim strs(0,8,15):str=strs:vec=1.4[], Variant()[LBound(str,vec)], String[0], Long[Ubound(str,vec)], String[0], LongDim strs(0,8,15):str=strs:vec=1.5[], Variant()[LBound(str,vec)], String[0], Long[Ubound(str,vec)], String[8], LongDim strs(0,8,15):str=strs:vec=1.6[], Variant()[LBound(str,vec)], String[0], Long[Ubound(str,vec)], String[8], LongDim strs(0,8,15):str=strs:vec=2[], Variant()[LBound(str,vec)], String[0], Long[Ubound(str,vec)], String[8], LongDim strs(0,8,15):str=strs:vec=2.4[], Variant()[LBound(str,vec)], String[0], Long[Ubound(str,vec)], String[8], LongDim strs(0,8,15):str=strs:vec=2.5[], Variant()[LBound(str,vec)], String[0], Long[Ubound(str,vec)], String[8], LongDim strs(0,8,15):str=strs:vec=2.6[], Variant()[LBound(str,vec)], String[0], Long[Ubound(str,vec)], String[15], LongDim strs(0,8,15):str=strs:vec=3[], Variant()[LBound(str,vec)], String[0], Long[Ubound(str,vec)], String[15], Long

Sources

Sideway BICK Blog

22/03


Copyright © 2000-2020 Sideway . All rights reserved Disclaimerslast modified on 26 January 2013