柔情似水 发表于 2015-1-16 22:13:42

ASP网页设计公布一个复杂点的ASP摸板类

使用filesystemobject,可以对服务器上的文件进行操作,浏览、复制、移动、删除等。有ado的支持,asp对数据库的操作非常得心应手。你甚至可以像使用本地数据库那样,管理远程主机上的数据库,对表格、记录进行各种操作。  呵呵,实在这个写了都挺久的了,看看内里的日期就晓得了,只不外一向不想公布出来,此次在做一个小型的论坛,就把本来本人的的谁人庞大的摸板引擎修正了一翻拿来用,由于把ASP代码和HTML代码分别了开来,以是论坛是能够变更作风,在用这个摸板引擎的过程当中发明了它功效上仍是有点不敷,就是在轮回标签交换上,不外假如分离数组能够轻松完成的,呵呵,详细用法临时不说了...等偶然间再把教程写出来


<ScriptLanguage="vbscript"Runat="Server">

--------------------------------------
版权申明:
Author:西楼冷月
Date:2005-8-21
HomeSite:www.xilou.Net|-西楼社区-|//www.chinaCMS.org
E-Mail:ch_56@163.com
QQ:39949376CMS会商群:11497202
version:西楼模板引擎V1.0精简版XILOU-EasyTemplatev1.0
--------------------------------------
函数申明:
Set_Block(BlkName)
Set_Bvar(TagName,TagValue)
Prase_Block(BlkName,BlkList)
Replace_Block(BlkNameList)
Set_Var(TagName,TagValue)
Prase_Temp()
OutPut()
--------------------------------------
变量申明:
Key(),Value(),Num//--------单标签保留数组
BKey(),BValue(),BNum//--------区块内单标签保留数组
Temp//----------模板全局变量
BeginBlockStart,BeginBlockEnd,EndBlockStart,EndBlockEnd//----------区块标签设置
VarBegin,VarEnd//------------单标签设置
Re,Match,Mathes
--------------------------------------
汇合申明:
Block//保留交换后的区块内容
Block_List//掏出区块,保留区块内内容
BlockNC//掏出区块,保留包含区块标签的全部区块内容
---------------------------------------

OnErrorResumeNext

ClassEasyTemplate

PrivateKey(),Value(),Num
PrivateBKey(),BValue(),BNum
publicBlock,Block_List,BlockNC
PublicTemp
PrivateBeginBlockStart,BeginBlockEnd,EndBlockStart,EndBlockEnd
PrivateVarBegin,VarEnd
PrivateRe,Match,Mathes
--------------------------------------------------------
PrivateSubClass_Initialize
response.write"西楼模板引擎入手下手了,哈哈!<br>"
setBlock=CreateObject("Scripting.Dictionary")追加内容,更新内容
setBlock_List=CreateObject("Scripting.Dictionary")贮存区块内容
setBlockNC=CreateObject("Scripting.Dictionary")//贮存包含区块标签的区块内容
setre=NewRegExp

redimKey(20)
redimValue(20)
Num=0
redimBKey(20)
redimBValue(20)
BNum=0
redimPBblockName(20)
BlockNum=0
------------默许标签形式------------
BeginBlockStart="<beginblock:"
BeginBlockEnd=">"
EndBlockStart="<endblock:"
EndBlockEnd=">"
VarBegin="{Tag:"
VarEnd="}"

EndSub

PrivateSubClass_Terminate
setBlock=nothing
setBlock_List=nothing
setBlockNC=nothing
setre=nothing

EraseKey
EraseValue
EraseBKey
EraseBValue
response.write"西楼模板引擎停止了!"
EndSub

-------------------------------------------------------
PublicPropertyLetSetTag(BS,BE,ES,EE,BG,ED)//--------从头设置标签形式
BeginBlockStart=BS
BeginBlockEnd=BE
EndBlockStart=ES
EndBlockEnd=EE
VarBegin=BG
VarEnd=ED
EndProperty

-------------------------------------------------------
PublicSubSet_Var(TagName,TagValue)单标签剖析
dimk
ifIsArray(TagName)andIsArray(TagValue)then
fork=LBound(TagName)toUbound(TagName)
Key(Num)=TagName(k)
Value(Num)=TagValue(k)
Num=Num+1
ifUBound(Key)=Numthen假如数组太小则静态分派空间
redimpreserveKey(Num+20)
redimpreserveValue(Num+20)
endif
next
else
Key(Num)=TagName
Value(Num)=TagValue
Num=Num+1
ifUBound(Key)=Numthen
redimpreserveKey(Num+20)
redimpreserveValue(Num+20)
endif
endif
EndSub

PublicSubPrase_Temp()//------------单标签交换
dimi
fori=LBound(Key)toUBound(Value)
Temp=replace(Temp,VarBegin&Key(i)&VarEnd,Value(i))
next
EndSub

===============区块剖析============================
PublicSubSet_BVar(TagName,TagValue)区块内单标签剖析
dimk
ifIsArray(TagName)andIsArray(TagValue)then
fork=LBound(TagName)toUbound(TagName)
BKey(BNum)=TagName(k)
BValue(BNum)=TagValue(k)
BNum=BNum+1
ifUBound(BKey)=BNumthen假如数组太小则静态分派空间
redimpreserveBKey(BNum+20)
redimpreserveBValue(BNum+20)
endif
next
else
BKey(BNum)=TagName
BValue(BNum)=TagValue
BNum=BNum+1
ifUBound(BKey)=BNumthen
redimpreserveBKey(BNum+20)
redimpreserveBValue(BNum+20)
endif
endif
EndSub

PublicSubSet_Block(blkname)设置区块,掏出区块内容
re.Global=true
re.IgnoreCase=true
re.Pattern=BeginBlockStart&blkname&BeginBlockEnd&"(*?)"&EndBlockStart&blkname&EndBlockEnd
setmatches=re.Execute(Temp)
BlockNC.Addblkname,matches(0)//创建全部区块称号和对应的键值
match=matches(0).SubMatches(0)
Block_List.Addblkname,match//创建区块称号和对应的键值
setmatches=nothing
EndSub

PublicSubPrase_Block(BlkName)//---剖析区块
dimBlk_Content,tag,k
Blk_Content=Block_List.Item(BlkName)
k=LBound(BKey)
foreachtaginBKey
Blk_Content=replace(Blk_Content,VarBegin&tag&VarEnd,BValue(k))
k=k+1
next

redimBKey(20)从头声明数组
redimBValue(20)
BNum=0初始数变成0

ifBlock.Exists(BlkName)then//不反复纪录内容
dimm:m=Block.Item(BlkName)
Block.Remove(BlkName)
Block.AddBlkName,Blk_Content
else
Block.AddBlkName,Blk_Content
endif
EndSub
==============================================
PublicSubClearTag()//----------扫除过剩标签
re.Global=true
re.IgnoreCase=true
re.Pattern=BeginBlockStart&"(*?)"&BeginBlockEnd&"(*?)"&EndBlockStart&"(*?)"&EndBlockEnd
setMatches=re.Execute(Temp)
ForEachMatchInMatches
Temp=Replace(Temp,Match,"")
Next
re.Pattern=VarBegin&"(*?)"&VarEnd
SetMatches=re.Execute(Temp)
ForEachMatchInMatches
Temp=Replace(Temp,Match,"")
Next
EndSub
=============================================
PublicSubOutPut()//----------输入剖析后的模板,办法
response.writeTemp
EndSub

EndClass
</Script>我想详细了解ASP整站代码与PSP整站代码有什么优缺点,那个更好,更安全,更用容易维护,和管理。。。

海妖 发表于 2015-1-19 05:13:00

不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍

再现理想 发表于 2015-1-24 12:18:15

接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。

不帅 发表于 2015-2-1 10:43:07

虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。

因胸联盟 发表于 2015-2-7 04:09:51

Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名")

精灵巫婆 发表于 2015-2-20 13:59:11

ASP的语言不仅仅只是命令格式差不多,而是包含在<%%>之内的命令完全就是VB语法。虽然ASP也是做为单独的一个技术来提出的,但他就是完全继承了VB所有的功能。

莫相离 发表于 2015-3-6 18:00:09

运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写,使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行。

蒙在股里 发表于 2015-3-13 05:10:01

以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。

柔情似水 发表于 2015-3-20 13:51:51

不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍
页: [1]
查看完整版本: ASP网页设计公布一个复杂点的ASP摸板类