WinBatch Tech Support Home

Database Search

If you can't find the information using the categories below, post a question over in our WinBatch Tech Support Forum.

TechHome

Array UDFs

Can't find the information you are looking for here? Then leave a message over on our WinBatch Tech Support Forum.

udfArrayReverse

 Keywords: udfArrayReverse Array Reverse Element 

;------------------------------------------------------------------------------------------------------------------------------------------
#DefineFunction udfArrayReverse (arrArray)
objSC = CreateObject ("MSScriptControl.ScriptControl")
objSC.AllowUI = @FALSE
Switch @TRUE
Case 256 == VarType (arrArray) ; WinBatch Array.
Case ObjectTypeGet (arrArray) == "ARRAY|VARIANT" ; Variant Array
   objSC.Language = "jscript"
   objSC.AddCode(: "function VB2JSArray(objVBArray){var a;try{a=new VBArray(objVBArray).toArray();}catch(e){a=new Array(objVBArray);}return a;}")
   objSC.AddCode(: 'function JS2VBArray(objJSArray){var dict=new ActiveXObject("Scripting.Dictionary");for(var i=0;i<objJSArray.length;i++){dict.add(i,objJSArray[i]);}return dict.Items();}')
   objSC.AddCode(: "function ArrayReverse(objVBArray){return JS2VBArray(VB2JSArray(objVBArray).reverse());}")
   arrArray = objSC.Run(: "ArrayReverse", arrArray)
   Break
Case @TRUE
   objSC.Language = "vbscript"
   objSC.AddCode(: "Dim a()")
   arrArray = objSC.Eval(: "a")
EndSwitch
Return arrArray
;..........................................................................................................................................
; This UDF "udfArrayReverse" returns a zero-based variant array that contains all elements from the given array in reversed order
; (makes the last element first, and the first element last).
;
; Parameter:
; arrArray ... A one-dimensional array. Array type can be WinBatch Array or Variant Array.
;..........................................................................................................................................
; Alternative codeline, see above:
; objJSC.AddCode(: "function VB2JSArray(objVBArray){return new VBArray(objVBArray).toArray();}") ; Possibly in some circumstances not so safe to use.
;..........................................................................................................................................
; (c)Detlev Dalitz.20100121.
; Jim Dippner.20080221: changed VB2JSArray.
; David Wang.20060704: created VB2JSArray, JS2VBArray.
;..........................................................................................................................................
#EndFunction
;------------------------------------------------------------------------------------------------------------------------------------------

Article ID:   W18342
Filename:   udfArrayReverse.txt
File Created: 2010:01:21:10:12:42
Last Updated: 2010:01:21:10:12:42