多项目 函数库、类库 统一为一个版本的方法 – one.asp

栏目: 数据库 · 发布时间: 7年前

内容简介:前几天 写的博客举个简单的应用场景,开发一个小的API系统,支持 XML、JSON输出。区别是 基础版(dev/dev.asp)只支持 Access,VIP版本(dev/vip.asp)支持 Access + SQL Server。这样VIP版本就需要在现在的基础上 增加 sqlserver的支持,增加额外的 配置项。开发过程只需要 按正常开发即可。

前几天 写的博客 多项目 函数库、类库 统一为一个版本的方法 (http://www.miaoqiyuan.cn/p/one-php)中提到 使用 one.php 将整个项目打包成 一个 php 文件,有网友 让我 整个asp版本的,今天下午抽空写了个 one.asp,使用方式基本一致,这次 增加了路径计算的功能,可以引用不同路径。

举个简单的应用场景,开发一个小的API系统,支持 XML、JSON输出。区别是 基础版(dev/dev.asp)只支持 Access,VIP版本(dev/vip.asp)支持 Access + SQL Server。这样VIP版本就需要在现在的基础上 增加 sqlserver的支持,增加额外的 配置项。开发过程只需要 按正常开发即可。

多项目 函数库、类库 统一为一个版本的方法 – one.asp

开发完毕后,通过 one.asp 打包成 index.asp 和 vip.asp 两个版本,整套程序都是一个独立的文件。

多项目 函数库、类库 统一为一个版本的方法 – one.asp

完整的测试代码 可以 访问: http://www.miaoqiyuan.cn/products/oneasp.rar 下载

核心代码 如下:

' ====================================================
	'  类名:One
	'  作者:mqycn
	'  博客:http://www.miaoqiyuan.cn
	'  源码:http://www.miaoqiyuan.cn/p/one-php
	'  说明:多项目 函数库、类库 统一为一个版本的方法
	' ====================================================
	Class OneAsp
		Private FSO
		Private Root
		
		Private Sub Class_Initialize()
			Set FSO = Server.CreateObject("Scripting.FileSystemObject")
		End Sub
		
		Private Sub Class_Terminate()
			Set FSO = Nothing
		End Sub
		
		Public Function Run(ByVal sourceFile, ByVal saveFile)
			Run = "<hr><b>Input:</b>" & sourceFile & "<br><b>Result:</b>" & Save(saveFile, Include(sourceFile))
		End Function
		
		
		Public Function Include(ByVal path)
			Dim tmpPath, tmpItem, arrPath, index
			tmpPath = ""
			arrPath = Split(path, "/")
			For index = 0 To UBound(arrPath) - 1
				tmpItem = arrPath(index)
				tmpPath = tmpPath & tmpItem & "/"
			Next
			Include = Parse(tmpPath, arrPath(UBound(arrPath)))
		End Function
		
		Private Function Parse(ByVal root, ByVal fileName)
			Call SetRoot(root)
			Dim html
			html = OpenRead(fileName)
			
			Dim preg, pregResult
			Set preg = New Regexp
			preg.pattern = "<!--#include file=""([^""]*)""-->"
			preg.global = True
			preg.ignorecase = True
			
			Dim htmlInclude
			Set pregResult = preg.execute(html)
			For Each htmlInclude In pregResult
				html = Replace(html, htmlInclude, Include(root & htmlInclude.submatches(0)))
			Next
			
			Parse = "<%	'" & root & fileName & " Start %" & ">" & vbCrLf & html & vbCrLf & "<%	'" & root & fileName & " End %" & ">" & vbCrLf
		End Function
		
		Private Function SetRoot(ByVal rootPath)
			If Right(rootPath, 1) <> "/" Then rootPath = rootPath & "/"
			Root = rootPath
		End Function
		
		Private Function RealPath(ByVal path)
			RealPath = Server.Mappath(Root & path)
		End Function
		
		Private Function OpenRead(ByVal path)
			Dim txtFile
			Set txtFile = FSO.OpenTextFile(RealPath(path))
			OpenRead = txtFile.ReadAll()
			txtFile.close
			On Error GoTo 0
		End Function
		
		Public Function Save(ByVal path, ByVal body)
			Dim txtFile
			Set txtFile = FSO.CreateTextFile(Server.Mappath(path))
			txtFile.write body
			txtFile.close
			Set txtFile = Nothing
			Save = path
		End Function
		
	End Class

使用也非常简单,使用 Call new OneAsp.run(开发版, 打包版),可以 dev.asp 中的所有包含的代码 打包到 index.asp,如果只想获取解析的内容,可以使用 Response.Write Server.Htmlencode(Call new OneAsp.include(开发版))


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

The Seasoned Schemer

The Seasoned Schemer

Daniel P. Friedman、Matthias Felleisen / The MIT Press / 1995-12-21 / USD 38.00

drawings by Duane Bibbyforeword and afterword by Guy L. Steele Jr.The notion that "thinking about computing is one of the most exciting things the human mind can do" sets both The Little Schemer (form......一起来看看 《The Seasoned Schemer》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具