快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

ASP通用模板类

特性
可设定私有缓存或公共缓存,提高效率
可自由选择使用 Stream 组件或 FSO 组件
支持自定义文件编码
可保存文件

属性


Name
文本,该模板名称,主要用于使用公共缓存时区分不同模板。


Format
文本,文件编码类型,可设置值。


Object
文本,使用组件,可设置值:


Stream
FSO



PublicCache
布尔值,使用公共缓存,开启时模板文件将保存到Application对象,其他引用此模板类的对象设置一样Name值并同样打开公共缓存即可从缓存读取。(Load方式)


PrivateCache
布尔值,使用私有缓存,开启时模板文件将保存到对象内部变量,同一引用此模板类的对象可读取。(Load方式)


Direction
文本,模板文件所在目录,前后无需斜杠或反斜杠,如:template/default


File
文本,模板文件名,前边无需斜杠或反斜杠,如:default.html


SaveDirection
文本,保存文件所在目录,前后无需斜杠或反斜杠,如:html/default


SaveFile
文本,保存文件名,前边无需斜杠或反斜杠,如:default.html



对象


Code
文本,当前文本,使用SetVar方式时对此对象进行替换,使用Load方式时将模板重载到此对象


Storage
文本,已保存文本,使用SaveFront或SaveLast方式时将Code对象中文本保存到此对象的开头或结尾,可用于循环后得到所有代码



方式


ClearCache
清除公共缓存和私有缓存(强制从文件重载模板)


ClearPublicCache
清除公共缓存


ClearPrivateCache
清除私有缓存


ClearCode
清除Code对象


ClearStorage
清除Storage对象


SaveFront
将当前Code对象中文本保存到Storage对象开头


SaveLast
将当前Code对象中文本保存到Storage对象结尾


SaveCode
将当前Code对象中文本保存到文件


SaveStorage
将当前Storage对象中文本保存到文件


SetVar
对当前Code对象中文本进行替换
参数:需要被替换的文本,欲替换后的文本


Load
将模板文件载入Code对象,当开启并存在私有缓存时,从私有缓存载入,当开启并存在公共缓存时,从公共缓存载入,若无缓存则从文件载入



内部变量


ccStrPath
默认根目录


ccStrCookieName
默认Application对象名前缀



代码


Class ccClsTemplate

Private ccStrCode,ccStrStorage
Private ccStrCacheCode
Private ccBlnPublicCache,ccBlnPrivateCache
Private ccStrName,ccStrCookieName
Private ccStrDirection,ccStrSaveDirection,ccStrFile,ccStrSaveFile,ccStrPath
Private ccObjStream,ccObjFSO,ccStrFormat,ccIntObject,ccObjText,ccIntFormat

Private Sub Class_Initialize
ccStrName = "default" \\\'默认名称
ccBlnPublicCache = False
ccBlnPrivateCache = False
ccStrFile = "cache.html"
ccStrSaveFile = "save_cache.html"
ccStrCookieName = "ccClass_Template" \\\'Application对象名前缀
ccStrFormat = "UTF-8" \\\'UTF-8|ASCII|GB2312|BIG5
ccIntFormat = -1
ccIntObject = 1 \\\'默认读取/保存模板组件 1:ADODB.Stream 2:FSO
ccStrPath = Server.MapPath("./")&"" \\\'默认根路径
End Sub

Public Property Let Name(ccStrName_in)
ccStrName = LCase(Trim(ccStrName_in))
End Property

Public Property Let Format(ccStrFormat_in)
ccStrFormat = ccStrFormat_in
If InStr(LCase(Trim(ccStrFormat_in)),"utf") > 0 Then
ccIntFormat = -1
Else
ccIntFormat = 0
End If
End Property

Public Property Let Object(ccStrObject_in)
ccStrObject_in = LCase(Trim(ccStrObject_in))
If InStr(ccStrObject_in,"fso") > 0 Then
ccIntObject = 2
Else
ccIntObject = 1
End If
End Property

Public Property Let PublicCache(ccBlnPublicCache_in)
If ccBlnPublicCache_in = True Then
ccBlnPublicCache = True
Else
ccBlnPublicCache = False
End If
End Property

Public Property Let PrivateCache(ccBlnPrivateCache_in)
If ccBlnPrivateCache_in = True Then
ccBlnPrivateCache = True
Else
ccBlnPrivateCache = False
End If
End Property

Public Property Let Direction(ccStrDirection_in)
ccStrDirection = ccStrDirection_in
End Property

Public Property Let File(ccStrFile_in)
If ccStrFile_in <> "" Then
ccStrFile = ccStrFile_in
End If
End Property

Public Property Let SaveDirection(ccStrSaveDirection_in)
ccStrSaveDirection = ccStrSaveDirection_in
End Property

Public Property Let SaveFile(ccStrSaveFile_in)
If ccStrSaveFile_in <> "" Then
ccStrSaveFile = ccStrSaveFile_in
End If
End Property

Public Property Get Code
Code = ccStrCode
End Property

Public Property Get Storage
Storage = ccStrStorage
End Property

Public Sub ClearCache
Call ClearPrivateCache
Call ClearPublicCache
End Sub

Public Sub ClearPrivateCache
ccStrCacheCode = ""
End Sub

Public Sub ClearPublicCache
Application(ccStrCookieName&ccStrName) = ""
End Sub

Public Sub ClearStorage
ccStrStorage = ""
End Sub

Public Sub ClearCode
ccStrCode = ""
End Sub

Public Sub SaveFront
ccStrStorage = ccStrCode & ccStrStorage
End Sub

Public Sub SaveLast
ccStrStorage = ccStrStorage & ccStrCode
End Sub

Public Sub SaveCode
Call SaveToFile(1)
End Sub

Public Sub SaveStorage
Call SaveToFile(2)
End Sub

Public Sub SetVar(ccStrTag_in,ccStrValue_in)
ccStrCode = RePlace(ccStrCode,ccStrTag_in,ccStrValue_in)
End Sub

Private Sub SaveToFile(ccIntCode_in)
Dim ccStrSaveCode
If ccIntCode_in = 1 Then
ccStrSaveCode = ccStrCode
Else
ccStrSaveCode = ccStrStorage
End If
If ccIntObject = 1 Then
Set ccObjStream = Server.CreateObject("ADODB.Stream")
With ccObjStream
.Type = 2
.Mode = 3
.Open
.Charset = ccStrFormat
.Position = ccObjStream.Size
.WriteText ccStrSaveCode
.SaveToFile ccStrPath & ccStrSaveDirection & "" & ccStrSaveFile,2
.Close
End With
Set ccObjStream = Nothing
Else
Set ccObjFSO = CreateObject("Scripting.FileSystemObject")
If ccObjFSO.FileExists(ccStrPath & ccStrSaveDirection & "" & ccStrSaveFile) = True Then
ccObjFSO.DeleteFile(ccStrPath & ccStrSaveDirection & "" & ccStrSaveFile)
End If
Set ccObjText = ccObjFSO.OpenTextFile(ccStrPath & ccStrSaveDirection & "" & ccStrSaveFile,2,True,ccIntFormat)
ccObjText.Write ccStrSaveCode
Set ccObjText = Nothing
Set ccObjFSO = Nothing
End If
ccStrSaveCode = ""
End Sub

Public Sub Load
ccStrCode = ""
If ccBlnPrivateCache = True Then
If ccFncIsEmpty(ccStrCacheCode) = False Then
ccStrCode = ccStrCacheCode
Exit Sub
End If
End If
If ccBlnPublicCache = True Then
If ccFncIsEmpty(Application(ccStrCookieName&ccStrName)) = False Then
ccStrCode = Application(ccStrCookieName&ccStrName)
Exit Sub
End If
End If
If ccIntObject = 1 Then
Set ccObjStream = Server.CreateObject("ADODB.Stream")
With ccObjStream
.Type = 2
.Mode = 3
.Open
.Charset = ccStrFormat
.Position = ccObjStream.Size
.LoadFromFile ccStrPath & ccStrDirection & "" & ccStrFile
ccStrCode = .ReadText
.Close
End With
Set ccObjStream = Nothing
Else
Set ccObjFSO = CreateObject("Scripting.FileSystemObject")
If ccObjFSO.FileExists(ccStrPath & ccStrDirection & "" & ccStrFile) = True Then
Set ccObjText = ccObjFSO.OpenTextFile(ccStrPath & ccStrDirection & "" & ccStrFile,1,False,ccIntFormat)
ccStrCode = ccObjText.ReadAll
Set ccObjText = Nothing
End If
Set ccObjFSO = Nothing
End If
If ccBlnPrivateCache = True Then
ccStrCacheCode = ccStrCode
End If
If ccBlnPublicCache = True Then
Application(ccStrCookieName&ccStrName) = ccStrCode
End If
End Sub

End Class

Function ccFncIsEmpty(ByRef ccStrValue_in)
If IsNull(ccStrValue_in) Or IsEmpty(ccStrValue_in) Or ccStrValue_in = "" Then
ccFncIsEmpty = True
Else
ccFncIsEmpty = False
End If
End Function




实例


模板文件内容



<#test#>

ASP程序代码


Dim objTemplate
Set objTemplate = New ccClsTemplate
objTemplate.Name = "Test"
objTemplate.Format = "UTF-8"
\\\'开启缓存
objTemplate.PublicCache = True
objTemplate.PrivateCache = True
\\\'设置模板目录和文件名
objTemplate.Direction = "test"
objTemplate.File = "test.html"
\\\'设置保存文件目录和文件名
objTemplate.SaveDirection = "test"
objTemplate.SaveFile = "test3.html"
\\\'载入模板
Call objTemplate.Load
\\\'进行文本替换
Call objTemplate.SetVar("<#test#>","Hello world.")
\\\'将文本保存至Storage暂存
Call objTemplate.SaveLast
\\\'重新载入模板,此时将从私有缓存重新装载,提高效率
Call objTemplate.Load
\\\'替换为其他值
Call objTemplate.SetVar("<#test#>"," By Cloudream.")
\\\'保存至Storage结尾暂存
Call objTemplate.SaveLast
\\\'保存Code至文件
Call objTemplate.SaveCode
Response.Write objTemplate.Storage

Set objTemplate = Nothing


显示结果


Hello world. By Cloudream.

保存文件结果


By Cloudream.
返回类别: 教程
上一教程: RECORDSET对象方式详解
下一教程: 一个为字符串中的网址加上链接的程序例子

您可以阅读与"ASP通用模板类"相关的教程:
· 使用模板实现ASP代码与页面分离
· 用模板建立动态ASP页
· 抵御入侵保护ASP系统的通用方式
· 编写通用的asp防注入程序
· ASP.NET中处理datetime的一些通用函数
    微笑服务 优质保证 索取样品