Sideway BICK BlogSideway BICK BLOG from Sideway

A Sideway to Sideway Home

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

Script, Scripting Language, VBScript elements, Server-Side VBScript Function Filter Function

VBScript Array Functions

Functions for manipulating array expression.

Filter Function

last updated 9/18/2017

Create a zero-based array by filtering a given InputStrings according to the specified search Value, and the specified Include and Compare settings.

Syntax

Filter(InputStrings, Value[, Include[, Compare]])

Argument

InputStringsRequired. Any valid one-dimensional array which is used for searching and copying elements from.ValueRequired. Any Valid string speified to search for.IncludeOptional setting. A Boolean value that is used to indicate whether the return subset of the array should contain Value as a substring. If Include argument is omitted, True is used and Filter returns the subset of the array that contains Value as a substring. If Include is False, Filter returns the subset of the array that does not contain Value as a substring.CompareOptional setting. A constant that is used to indicate the kind of comparison used when evaluating substrings. If compare argument is omitted, 0 is used and a binary comparison is performed.

Settings

Include argument

ValueConstant1Returns the subset of the array that contains Value as a substring.0Returns the subset of the array that does not contain Value as a substring.

Compare argument

vbConstantValueConstantvbBinaryCompare0Perform a binary comparison.vbTextCompare1Perform a textual comparison.

Returns

Returns a Variant() containing a zero-based array with elements obtained by filtering a given InputStrings according to the specified search Value, and the specified Include and Compare settings.

Returns of Filter function:

Resultreturn valueValues are foundVariant of an zero-based one-dimensional array contains all valuesNo value is foundVariant of a zero length array

Special returns of Filter function:

InputStringsValuereturn valueNullAnyRun-time ErrorEmptyAnyRun-time Error""AnyRun-time ErrorNot a one-dimensional arrayAnyRun-time ErrorAnyNullRun-time ErrorArray(Null), Array()Empty,""Variant of a zero length arrayArray(Empty), Array("")Empty,""Variant of an array with a "" elementValid arrayEmpty,""InputStrings

Remarks

  • InputStrings argument can only be a one-dimensional array. InputStrings containing Null, Empty, or "" are also not allowed.
  • Filter function always returns a variant().
  • If no match is found within InputStrings, Filter returns a zero length array.
  • If match are found within InputStrings, Filter returns a zero-based one-dimensional array containing all matched elements from InputStrings only.

Requirement

2

Examples

Examples of Filter function

ASP VbScript Command:
<script runat="server" language="VBScript">
Function cmda1:cmda1="Filter(str,fnd,flg,cmp)":cmda1=Left(cmda1,Len(cmda1)-4*(4-x)-1)&")":End Function
Dim vars,str,fnd,flg,cmp,x,cmda,var:var=0
cmda=array("str","Eval(""cmda1"")","Eval(cmda1)")
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):fnd=Empty":x=2:dsp_x
vars="str=Array(Null):fnd=Empty":x=2:dsp_x
vars="str=Array():fnd=Empty":dsp_x
vars="str=Array(Empty):fnd=Empty":dsp_x
vars="str=Array(""""):fnd=Empty":dsp_x
vars="str=Array(12,21,13):fnd=Empty":dsp_x
vars="str=Array(Null):fnd=""""":x=2:dsp_x
vars="str=Array():fnd=""""":dsp_x
vars="str=Array(Empty):fnd=""""":dsp_x
vars="str=Array(""""):fnd=""""":dsp_x
vars="str=Array(12,21,13):fnd=""""":dsp_x
vars="str=Array(12,21,13):fnd=1":dsp_x
vars="str=Array(12,21,13):fnd=2":dsp_x
vars="str=Array(12,21,13):fnd=3":dsp_x
vars="str=Split(""12 21 13""):fnd=1":dsp_x
vars="str=Split(""12 21 13""):fnd=2":dsp_x
vars="str=Split(""12 21 13""):fnd=3":dsp_x
vars="str=Array(""12"",""21"",""13""):fnd=1":dsp_x
vars="str=Array(""12"",""21"",""13""):fnd=2":dsp_x
vars="str=Array(""12"",""21"",""13""):fnd=3":dsp_x
vars="str=Array("""","" "",""  ""):fnd="" """:x=2:dsp_x
vars="str=Array("""","" "",""  ""):fnd=""  """:dsp_x
vars="str=Array("""","" "",""  ""):fnd=""   """:dsp_x
vars="str=Array(12,21,13):fnd=1:flg=1":x=3:dsp_x
vars="str=Array(12,21,13):fnd=1:flg=0":dsp_x
vars="str=Array(12,21,13):fnd=2:flg=1":dsp_x
vars="str=Array(12,21,13):fnd=2:flg=0":dsp_x
vars="str=Array(12,21,13):fnd=3:flg=1":dsp_x
vars="str=Array(12,21,13):fnd=3:flg=0":dsp_x
vars="str=Array(""ab"",""aB"",""Ab"",""AB""):fnd=""a"":flg=1:cmp=0":dsp_x
vars="str=Array(""ab"",""aB"",""Ab"",""AB""):fnd=""B"":flg=1:cmp=0":dsp_x
vars="str=Array(""ab"",""aB"",""Ab"",""AB""):fnd=""a"":flg=0:cmp=0":dsp_x
vars="str=Array(""ab"",""aB"",""Ab"",""AB""):fnd=""B"":flg=0:cmp=0":dsp_x
vars="str=Array(""ab"",""aB"",""Ab"",""AB""):fnd=""a"":flg=1:cmp=1":x=4:dsp_x
vars="str=Array(""ab"",""aB"",""Ab"",""AB""):fnd=""B"":flg=1:cmp=1":dsp_x
vars="str=Array(""ab"",""aB"",""Ab"",""AB""):fnd=""a"":flg=0:cmp=1":dsp_x
vars="str=Array(""ab"",""aB"",""Ab"",""AB""):fnd=""B"":flg=0:cmp=1":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), TypeNamestr=Array(Null):fnd=Empty[""], Variant()[Filter(str,fnd)], String[], Variant()str=Array(Null):fnd=Empty[""], Variant()[Filter(str,fnd)], String[], Variant()str=Array():fnd=Empty[], Variant()[Filter(str,fnd)], String[], Variant()str=Array(Empty):fnd=Empty[""], Variant()[Filter(str,fnd)], String[""], Variant()str=Array(""):fnd=Empty[""], Variant()[Filter(str,fnd)], String[""], Variant()str=Array(12,21,13):fnd=Empty['12' '21' '13'], Variant()[Filter(str,fnd)], String['12' '21' '13'], Variant()str=Array(Null):fnd=""[""], Variant()[Filter(str,fnd)], String[], Variant()str=Array():fnd=""[], Variant()[Filter(str,fnd)], String[], Variant()str=Array(Empty):fnd=""[""], Variant()[Filter(str,fnd)], String[""], Variant()str=Array(""):fnd=""[""], Variant()[Filter(str,fnd)], String[""], Variant()str=Array(12,21,13):fnd=""['12' '21' '13'], Variant()[Filter(str,fnd)], String['12' '21' '13'], Variant()str=Array(12,21,13):fnd=1['12' '21' '13'], Variant()[Filter(str,fnd)], String['12' '21' '13'], Variant()str=Array(12,21,13):fnd=2['12' '21' '13'], Variant()[Filter(str,fnd)], String['12' '21'], Variant()str=Array(12,21,13):fnd=3['12' '21' '13'], Variant()[Filter(str,fnd)], String['13'], Variant()str=Split("12 21 13"):fnd=1["12" "21" "13"], Variant()[Filter(str,fnd)], String["12" "21" "13"], Variant()str=Split("12 21 13"):fnd=2["12" "21" "13"], Variant()[Filter(str,fnd)], String["12" "21"], Variant()str=Split("12 21 13"):fnd=3["12" "21" "13"], Variant()[Filter(str,fnd)], String["13"], Variant()str=Array("12","21","13"):fnd=1["12" "21" "13"], Variant()[Filter(str,fnd)], String["12" "21" "13"], Variant()str=Array("12","21","13"):fnd=2["12" "21" "13"], Variant()[Filter(str,fnd)], String["12" "21"], Variant()str=Array("12","21","13"):fnd=3["12" "21" "13"], Variant()[Filter(str,fnd)], String["13"], Variant()str=Array(""," ","  "):fnd=" "["" " " "  "], Variant()[Filter(str,fnd)], String[" " "  "], Variant()str=Array(""," ","  "):fnd="  "["" " " "  "], Variant()[Filter(str,fnd)], String["  "], Variant()str=Array(""," ","  "):fnd="   "["" " " "  "], Variant()[Filter(str,fnd)], String[], Variant()str=Array(12,21,13):fnd=1:flg=1['12' '21' '13'], Variant()[Filter(str,fnd,flg)], String['12' '21' '13'], Variant()str=Array(12,21,13):fnd=1:flg=0['12' '21' '13'], Variant()[Filter(str,fnd,flg)], String[], Variant()str=Array(12,21,13):fnd=2:flg=1['12' '21' '13'], Variant()[Filter(str,fnd,flg)], String['12' '21'], Variant()str=Array(12,21,13):fnd=2:flg=0['12' '21' '13'], Variant()[Filter(str,fnd,flg)], String['13'], Variant()str=Array(12,21,13):fnd=3:flg=1['12' '21' '13'], Variant()[Filter(str,fnd,flg)], String['13'], Variant()str=Array(12,21,13):fnd=3:flg=0['12' '21' '13'], Variant()[Filter(str,fnd,flg)], String['12' '21'], Variant()str=Array("ab","aB","Ab","AB"):fnd="a":flg=1:cmp=0["ab" "aB" "Ab" "AB"], Variant()[Filter(str,fnd,flg)], String["ab" "aB"], Variant()str=Array("ab","aB","Ab","AB"):fnd="B":flg=1:cmp=0["ab" "aB" "Ab" "AB"], Variant()[Filter(str,fnd,flg)], String["aB" "AB"], Variant()str=Array("ab","aB","Ab","AB"):fnd="a":flg=0:cmp=0["ab" "aB" "Ab" "AB"], Variant()[Filter(str,fnd,flg)], String["Ab" "AB"], Variant()str=Array("ab","aB","Ab","AB"):fnd="B":flg=0:cmp=0["ab" "aB" "Ab" "AB"], Variant()[Filter(str,fnd,flg)], String["ab" "Ab"], Variant()str=Array("ab","aB","Ab","AB"):fnd="a":flg=1:cmp=1["ab" "aB" "Ab" "AB"], Variant()[Filter(str,fnd,flg,cmp)], String["ab" "aB" "Ab" "AB"], Variant()str=Array("ab","aB","Ab","AB"):fnd="B":flg=1:cmp=1["ab" "aB" "Ab" "AB"], Variant()[Filter(str,fnd,flg,cmp)], String["ab" "aB" "Ab" "AB"], Variant()str=Array("ab","aB","Ab","AB"):fnd="a":flg=0:cmp=1["ab" "aB" "Ab" "AB"], Variant()[Filter(str,fnd,flg,cmp)], String[], Variant()str=Array("ab","aB","Ab","AB"):fnd="B":flg=0:cmp=1["ab" "aB" "Ab" "AB"], Variant()[Filter(str,fnd,flg,cmp)], String[], Variant()

Sources

Sideway BICK Blog

21/03


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