ArtLung Blog

www.flickr.com
A photo on Flickr A photo on Flickr A photo on Flickr A photo on Flickr A photo on Flickr

Joe Crawford lives in Simi Valley, CA USA. He makes mistakes.

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

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

three comments...

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.

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

This post accepts webmentions. If you link to and write about this on your website, enter the web address of your post below: