amma.NETtami

.NET walkabout
posts - 11, comments - 18, trackbacks - 0

lunedì 27 agosto 2007

Running custom VbScript code from asp

Running custom VbScript code from asp

I was in the need to run some custom VbScript code from an asp page, so I went through the problem and found a very simple solution.
A common solution is to use the Microsoft ScriptControl.
Here is a very simple example running a piece of code stored in a text file.

default.asp

<%@language=VBSCRIPT%>
<%

dim sFile : sFile = ""

sFile
= LoadFile("MyCustomScript.txt")

if len(sFile) > 0 then
    Response.Write
"The result is: " & ExecScript(sFile)
end if

Function ExecScript(sScript)

       
dim sc
       
'Create the Script Control object
        set sc = server.CreateObject("scriptcontrol")
       
        sc.Language
= "VBSCRIPT"
        sc.UseSafeSubset
= false
        sc.Reset
       
       
'add the custom script to the ScripContro object
        sc.AddCode sScript
       
'run the code and evaluate the result of the "CustomScript" function
        ExecScript = sc.Eval("CustomScript")
       
       
set sc = nothing

End Function

Function LoadFile(sFileName)
   
Dim objFSO
   
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")

   
Dim objTextStream
   
dim strFileName
   
dim lsTemp

    strFileName
= server.MapPath(sFileName)
   
const fsoForReading = 1

   
If objFSO.FileExists(strFileName) then
       
'The file exists, so open it and output its contents
        Set objTextStream = objFSO.OpenTextFile(strFileName, fsoForReading)
        lsTemp
=  vbNullString & objTextStream.ReadAll & vbNullString
        objTextStream.Close
       
Set objTextStream = Nothing
   
Else
       
'The file did not exist
        Response.Write strFileName & " was not found."
   
End If

   
'Clean up
    Set objFSO = Nothing
    LoadFile
= lsTemp
end function

%
>

MyCustomScript.txt

function CustomScript()
   
'Let's calculate the area of a rectangle
    dim dHeight : dHeight = 10
   
dim dWidth : dWidth = 20
    CustomScript
= cstr(dHeight * dWidth)
end function

This is a very easy example of how to use the Microsoft ScriptControl in an asp page.
A more realistic task would be, for example, store the script in a database, get the scripts from there and run 'em like exposed above.

posted @ lunedì 1 gennaio 0001 00:00 | Feedback (3) | Filed Under [ ASP VbScript ]

Powered by:
Powered By Subtext Powered By ASP.NET