ASP网页编程之asp打包类
强大的可扩展性。ASP具有强大的扩展性,可以实现与多种网络、硬件设备的连接:通过专用的通讯线路远程接入企业;通过远程拨号服务器为远程拨号客户提供服务;通过WAP为移动电话互联网客户服务。打包<%OnErrorResumeNext
Dimr
Setr=NewRar
r.AddServer.MapPath("a.gIf")
r.AddServer.MapPath("a.txt")
r.AddServer.MapPath("test")
r.AddServer.MapPath("file.asp")
r.packname=Server.MapPath("xxx.dat")
r.Pack
r.rootpath=Server.MapPath("xxx")
r.packname=Server.MapPath("xxx.dat")
r.UnPack
Response.Write(Err.Description)
Setr=Nothing
%>
<scriptLanguage="Vbscript"Runat="server">
-----------------------------------------------------
形貌:Asp打包类
作者:小灰(quxiaohui_0@163.com)
链接:http://asp2004.nethttp://blog.csdn.net/iuhxqhttp://bbs.asp2004.net
版本:1.0Beta
版权:本作品可无偿使用,可是请勿移除版权信息
-----------------------------------------------------
ClassRar
Dimfiles,packname,s,s1,s2,rootpath,fso,f,buf
PrivateSubClass_Initialize
Randomize
DimranNum
ranNum=Int(90000*Rnd)+10000
packname=Year(Now)&Month(Now)&Day(Now)&Hour(Now)&Minute(Now)&Second(Now)&ranNum&".asp2004"
rootpath=Server.MapPath("./")
Setfiles=server.CreateObject("Scripting.Dictionary")
Setfso=Server.CreateObject("Scripting.FileSystemObject")
Sets=server.CreateObject("ADODB.Stream"):s.Open:s.Type=1
Sets1=server.CreateObject("ADODB.Stream"):s1.Open:s1.Type=1
Sets2=server.CreateObject("ADODB.Stream"):s2.Open:s2.Type=2
EndSub
PrivateSubClass_Terminate
s.Close:Sets=Nothing
s1.Close:Sets1=Nothing
s2.Close:Sets2=Nothing
Setfso=Nothing
EndSub
PublicSubAdd(obj)
Iffso.FileExists(obj)Then
Setf=fso.GetFile(obj)
files.Addobj,f.Size
ElseIffso.FolderExists(obj)Then
files.Addobj,-1
Setf=fso.GetFolder(obj)
Setfc=f.Files
ForEachf1infc
Add(LCase(f1.Path))
Next
EndIf
EndSub
PublicSubPack
Dimstr
a=files.Keys
b=files.Items
fori=0tofiles.count-1
Ifb(i)>=0Then
s.LoadFromFile(a(i))
buf=s.Read
IfNotIsNull(buf)Thens1.Write(buf)
EndIf
str=str&b(i)&">"&Replace(a(i),rootpath,"")&vbCrLf
next
str=CStr(Right("000000000"&len(str),10))&str
buf=TextToStream(str)
s.Position=0
s.Writebuf
s1.Position=0
s.Writes1.Read
s.SetEOS
s.SaveToFile(packname)
EndSub
PublicSubUnPack
IfNotfso.FolderExists(rootpath)Then
fso.CreateFolder(rootpath)
EndIf
Dimsize
转换文件巨细
s.LoadFromFile(packname)
size=CInt(StreamToText(s.Read(10)))
str=StreamToText(s.Read(size))
arr=Split(str,vbCrLf)
fori=0toUbound(arr)-1
arrFile=Split(arr(i),">")
IfarrFile(0)<0Then
IfNotfso.FolderExists(rootpath&arrFile(1))Then
fso.CreateFolder(rootpath&arrFile(1))
EndIf
ElseIfarrFile(0)>=0Then
Iffso.FileExists(rootpath&arrFile(1))Then
fso.DeleteFile(rootpath&arrFile(1))
EndIf
s1.Position=0
buf=s.Read(arrFile(0))
IfNotIsNull(buf)Thens1.Write(buf)
s1.SetEOS
s1.SaveToFile(rootpath&arrFile(1))
EndIf
Next
EndSub
PublicFunctionStreamToText(stream)
IfIsNull(stream)Then
StreamToText=""
Else
Setsm=server.CreateObject("ADODB.Stream"):sm.Open:sm.Type=1
sm.Write(stream)
sm.Position=0
sm.Type=2
sm.charset="gb2312"
sm.Position=0
StreamToText=sm.ReadText()
sm.Close:Setsm=Nothing
EndIf
EndFunction
PublicFunctionTextToStream(text)
Iftext=""Then
TextToStream=""这里该怎样写?空流?
Else
Setsm=server.CreateObject("ADODB.Stream"):sm.Open:sm.Type=2:sm.charset="gb2312"
sm.WriteText(text)
sm.Position=0
sm.Type=1
sm.Position=0
TextToStream=sm.Read
sm.Close:Setsm=Nothing
EndIf
EndFunction
EndClass
</script>
大家可以自己去看一看.可以说看得想呕吐.以前有次下了个动网来看.里面连基本内置函数的保护措施(函数没防御性)都没有.难怪经常补这个补那个了.可能现在.NET版会好点吧 Response:从字面上讲是“响应”,因此这个是服务端向客户端发送东西的,例如Response.Write 学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点: 跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组 我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。 用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。 ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。 跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组
页:
[1]