首页 > 编程 > ASP > 正文

ASP模板类代码_ASP教程

2024-05-04 11:04:41
字体:
来源:转载
供稿:网友

推荐:asp制作的日历程序
纯ASP打造的日历程序,可自行美化,这里仅提供最简单的CSS样式。。。 style body{font-size:12px; margin:20px 0 0 20px; padding:0} tr,td{text-align:center;} /style % '================================= '说明:日历文件 '================================= '取

 Class Template

Private m_FileName, m_Root, m_Unknowns, m_LastError, m_HaltOnErr
Private m_ValueList, m_BlockList
Private m_RegExp
Private Sub Class_Initialize
Set m_ValueList = CreateObject("Scripting.Dictionary")
Set m_BlockList = CreateObject("Scripting.Dictionary")
set m_RegExp = New RegExp
m_RegExp.IgnoreCase = True
m_RegExp.Global = True
m_FileName = ""
m_Root = "."
m_Unknowns = "remove"
m_LastError = ""
m_HaltOnErr = true
End Sub

Private Sub Class_Terminate
Set m_RegExp = Nothing
Set m_BlockMatches = Nothing
Set m_ValueMatches = nothing
End Sub

Public Property Get ClassName()
ClassName = "Template"
End Property

Public Property Get Version()
Version = "1.0"
End Property
Private Function LoadFile(ByVal chartype)
Dim Filename, fso, hndFile
Filename = m_Root
If Right(Filename, 1)<>"/" And Right(Filename, 1)<>"/" Then Filename = Filename & "/"
Filename = Server.MapPath(Filename & m_FileName)
Set StreamObject = Server.CreateObject("Adodb.Stream")
StreamObject.Type = 1
StreamObject.Mode = 3
StreamObject.Open
StreamObject.Position = 0
StreamObject.LoadFromFile Filename
StreamObject.Position = 0
StreamObject.Type = 2
StreamObject.CharSet = chartype
LoadFile = StreamObject.readtext()
If LoadFile = "" Then ShowError("0x11<br>Could Not Load The File " & m_FileName & "!")
End Function

Private Sub ShowError(ByVal msg)
m_LastError = msg
Response.Write "<span style=""font-size:12px;color:red"">Error ID : " & msg & "</span>"
If m_HaltOnErr Then Response.End
End Sub

Public Sub set_root(ByVal Value)
m_Root = Value
End Sub
Public Function get_root()
get_root = m_Root
End Function
Public Property Let Root(ByVal Value)
set_root(Value)
End Property
Public Property Get Root()
Root = m_Root
End Property

Public Sub set_file(ByVal handle,ByVal filename,ByVal chartype)
m_FileName = filename
m_BlockList.Add Handle, LoadFile(chartype)
End Sub
Public Function get_file()
get_file = m_FileName
End Function
Public Sub set_unknowns(ByVal unknowns)
m_Unknowns = unknowns
End Sub
Public Function get_unknowns()
get_unknowns = m_Unknowns
End Function
Public Property Let Unknowns(ByVal unknown)
m_Unknowns = unknown
End Property
Public Property Get Unknowns()
Unknowns = m_Unknowns
End Property

Public Sub set_block(ByVal Parent, ByVal BlockTag, ByVal Name)
Dim Matches
m_RegExp.Pattern = "<!--/s+BEGIN " & BlockTag & "/s+-->([/s/S.]*)<!--/s+END " & BlockTag & "/s+-->"
If Not m_BlockList.Exists(Parent) Then ShowError("0x12<br>Undefined Block Tag " & Parent & "!")
set Matches = m_RegExp.Execute(m_BlockList.Item(Parent))
For Each Match In Matches
m_BlockList.Add BlockTag, Match.SubMatches(0)
m_BlockList.Item(Parent) = Replace(m_BlockList.Item(Parent), Match.Value, "{" & Name & "}")
Next
set Matches = nothing
End Sub

Public Sub set_var(ByVal Name, ByVal Value, ByVal AppEnd)
Dim Val
If IsNull(Value) Then Val = "" Else Val = Value
If m_ValueList.Exists(Name) Then
If AppEnd Then m_ValueList.Item(Name) = m_ValueList.Item(Name) & Val _
Else m_ValueList.Item(Name) = Val
Else
m_ValueList.Add Name, Value
End If
End Sub

Public Sub unset_var(ByVal Name)
If m_ValueList.Exists(Name) Then m_ValueList.Remove(Name)
End Sub

Private Function InstanceValue(ByVal BlockTag)
Dim keys, i
InstanceValue = m_BlockList.Item(BlockTag)
keys = m_ValueList.Keys
For i=0 To m_ValueList.Count-1
InstanceValue = Replace(InstanceValue, "{" & keys(i) & "}", m_ValueList.Item(keys(i)))
Next
End Function

Public Sub parse(ByVal Name, ByVal BlockTag, ByVal AppEnd)
If Not m_BlockList.Exists(BlockTag) Then ShowError("0x12<br>Undefined Block Tag " & Parent & "!")
If m_ValueList.Exists(Name) Then
If AppEnd Then m_ValueList.Item(Name) = m_ValueList.Item(Name) & InstanceValue(BlockTag) _
Else m_ValueList.Item(Name) = InstanceValue(BlockTag)
Else
m_ValueList.Add Name, InstanceValue(BlockTag)
End If
End Sub

Private Function finish(ByVal content)
Select Case m_Unknowns
Case "keep" finish = content
Case "remove"
m_RegExp.Pattern = "/{[^ /t/r/n}]+/}"
finish = m_RegExp.Replace(content, "")
Case "comment"
m_RegExp.Pattern = "/{([^ /t/r/n}]+)/}"
finish = m_RegExp.Replace(content, "<!-- Template Variable $1 Undefined -->")
Case Else finish = content
End Select
End Function

Public Sub output(ByVal Name)
If Not m_ValueList.Exists(Name) Then ShowError("0x13<br>Could Not Find Tag " & Name & "!")
Response.Write(finish(m_ValueList.Item(Name)))
End Sub
End Class

分享:ASP Request对象的使用
ASP主要有五个内建(built-in)对象:Server、Request、Response、Application和Session。现在我们通过举例来对它们进行讲解。首先是最常使用的Response对象。 例1 利用Response在网页中输出HTML文档 您可以在FrontPage Editor,或是写字板、记事本等书写器中输入以上的代

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表