Married, moved, and getting it together.

What if you have to un-override a native VBScript Function? 2006 Nov 01

I know, why the heck would you have to do this? Well, here’s how you would do it:

< % Option Explicit ‘ This redefines the “left” function
‘ Yes, it’s hard to defend this kind of
‘ overriding of native VBScript functions
Function Left(mystring,mynumber)
Left = Right(mystring,mynumber)
End Function

Dim sc, cmd
‘ This code is the way to get to the “real” old version
set sc = CreateObject(“MSScriptControl.ScriptControl”)
‘ set the language
sc.Language = “VBScript”
‘ what command do you want to call?
cmd = “Left(“”hello””,1)”

Response.Write Eval(cmd)
Response.Write “,”
Response.Write Left(“hello”, 1)
Response.Write “,”
‘ here we call the one that produces the right result
Response.Write sc.Eval(cmd)
%>

Output:
o,o,h

Joe Crawford blogged this at 10:40pm in 2006 in November. The 1st was a Wednesday. You are reading this 13 years later. Comment. There are 3 comments Tweet. Send email. It has no hastags.

Comments: 3

you never answered the question… why would you want to do this?

Because the codebase has 8 year old nuggets where mofos do stuff like rewrite the NumberFormat function, and if you want to get to the *actual* functionality of the NumberFormat function, you have to do this silly thing.

I like to think of it like function or operator overloading, but much, much stupider, because you lose the original functionality.

wow that is insanity! I am always amazed at the stuff people do.

Leave a Reply

Comments Open; Trackbacks Open.