VBScript doesn't appear to have a way to include a common file of functions.
Is there a way to achieve this?
VBScript doesn't appear to have a way to include a common file of functions.
Is there a way to achieve this?
You can create a (relatively) small function in each file that you want to include other files into, as follows:
sub includeFile (fSpec)
dim fileSys, file, fileData
set fileSys = createObject ("Scripting.FileSystemObject")
set file = fileSys.openTextFile (fSpec)
fileData = file.readAll ()
file.close
executeGlobal fileData
set file = nothing
set fileSys = nothing
end sub
and then use it to include specific files - these are executed as if they were inline.
includeFile "commonapi.vbi"
includeFile "dbcalls.vbi"
It basically opens the file, reads the entire contents into a string, then executes that string. There's no error handling on the I/O calls since this sort of stuff is usually done once on program start, and you want to fail if there's a problem including it.
Is this VBScript being used locally, or served classic ASP style?
If its classic ASP, you can use SSI todo it:
<!-- #include virtual="/PathTo/MyFile.vbs" -->
The "Windows Script Host" framework (if ya want to call it that), offers an XML wrapper document that adds functionality over regular vbs files. One of which is the ability to include external script files of both the VBscript and Jscript flavors. I never got very deep into it, but I think it would do what you're wanting to do. http://msdn.microsoft.com/en-us/library/15x4407c(VS.85).aspx
You can include JavaScript, VBScript, or modules of other WScript script languages.
Example WSF file:
<job id="IncludeExample">
<script language="JavaScript" src="sprintf.js"/>
<script language="VBScript" src="logging.vbs"/>
<script language="VBScript" src="iis-queryScriptMaps.vbs"/>
</job>
If the above file is called "iis-scriptmaps.wsf", run it this way with cscript.exe:
cscript.exe iis-scriptmaps.wsf
IIS 5 and up also allow a script
tag for including other files from an ASP file. (Is your VBScript an ASP page or a Windows script?) Here's an example:
<script language="VBScript" runat="server" src="include.asp"></script>
The behavior and rules are a bit different from server-side includes. Note: I have never actually tried using this syntax from classic ASP.
You can use the ExecuteGlobal function to run arbitrary VBS code in the global namespace. An example can be found here : http://www.source-code.biz/snippets/vbscript/5.htm
you can definately use the WSF script tag in cscript:
<script language="VBScript" src="ADOVBS.INC"/>
If you use ADOVBS.inc for an ADODB access make sure to remove the
<% %>
tags from ADOVBS.INC.