日期:2010-09-09  浏览次数:20711 次

  受<! #include file="filename.asp" --> 宏限制,必须存在该文件并且会预先编译(不管前面是否加以条件)。经常有这样的要求,根据不同的需求要求include不同的文件,如各个人的不同设置,所以要求能动态include文件。

    代码如下:

Function include(filename)
  Dim re,content,fso,f,aspStart,aspEnd
  set fso=CreateObject("Scripting.FileSystemObject")
  set f=fso.OpenTextFile(server.mappath(filename))
  content=f.ReadAll
  f.close
  set f=nothing
  set fso=nothing
  set re=new RegExp
  re.pattern="^\s*="
  aspEnd=1
  aspStart=inStr(aspEnd,content,"<%")+2
  do while aspStart>aspEnd+1
    Response.write Mid(content,aspEnd,aspStart-aspEnd-2)
    aspEnd=inStr(aspStart,content,"%\>")+2
    Execute(re.replace(Mid(content,aspStart,aspEnd-aspStart-2),"Response.Write "))
    aspStart=inStr(aspEnd,content,"<%")+2
  loop
  Response.write Mid(content,aspEnd)
  set re=nothing
End Function

    使用范例:

include("youinc.asp")