用ASP实现hashMap功能的类

   java中的hashMap存取数据非常方便,可惜ASP中没有类似的类.作者在开发程序中需要类似的数据类型,于是构造了一个能基本类似hashMap功能的类,可以实现键值存取操作等,存取的数据可以为ASP 中的任何基本类型.

  下面是程序的代码,贴到一个空的ASP中可以直接运行.有问题可以在这里与我交流:

<% 
'miantuanMap的使用范例 
'作者:miantuan.net 
'email:ray@miantuan.net 
'qq:12694448 
'交流区:http://www.miantuan.net 

'实例化一个MtMap类的对象 
set miantuanMap = new MtMap 
'给mp对象赋值 
miantuanMap.putv "a","miantuan.net" 
miantuanMap.putv "b","www.miantuan.net" 
miantuanMap.putv "c","http://www.miantuan.net" 
response.write "[键值数量]:"&miantuanMap.count 
response.write "<br>" 
response.write "[a]:"&miantuanMap.getv("a") 
response.write "<br>" 
response.write ":"&miantuanMap.getv("b") 
response.write "<br>" 
response.write "[c]:"&miantuanMap.getv("c") 
response.write "<hr>" 
'删除key为"b"的键值 
miantuanMap.delv "b" 
response.write "[键值数量]:"&miantuanMap.count 
response.write "<br>" 
response.write "[a]:"&miantuanMap.getv("a") 
response.write "<br>" 
response.write ":"&miantuanMap.getv("b") 
response.write "<br>" 
response.write "[c]:"&miantuanMap.getv("c") 
response.write "<hr>" 
'清空miantuanMap的所有值 
miantuanMap.clear 
'给key为"c"的键值重新赋值 
miantuanMap.putv "c","http://miantuan.net" 
response.write "[键值数量]:"&miantuanMap.count 
response.write "<br>" 
response.write "[a]:"&miantuanMap.getv("a") 
response.write "<br>" 
response.write ":"&miantuanMap.getv("b") 
response.write "<br>" 
response.write "[c]:"&miantuanMap.getv("c") 
response.write "<hr>" 
'------------------------------------- 
'实现类似hashMap功能的类 
'作者:miantuan.net 
'email:ray@miantuan.net 
'qq:12694448 
Class MtMap 
private arr() 
private arr_len 
'构造函数 
private Sub Class_Initialize 
'其中 arr(0,n)为key,arr(1,n)为value 
arr_len = 0 
redim arr(1,arr_len) 
end sub 

'赋值,如果存在则覆盖 
public sub putv(k,v) 
dim is_update 
is_update = false 
arr_len = ubound(arr,2) 
for i=0 to arr_len-1 
if k=arr(0,i) then 
arr(1,i) = v 
is_update = true 
exit for 
end if 
next 
if not is_update then 
arr_len = arr_len +1 
redim preserve arr(1,arr_len) 
arr(0,arr_len) = k 
arr(1,arr_len) = v 
end if 
end sub 
'取得key为"k"的键值 
public function getv(k) 
dim v 
v = "" 
for i=0 to arr_len 
if k=arr(0,i) then 
v = arr(1,i) 
exit for 
end if 
next 
getv = v 
end function 

'删除key为"k"的键值 
public sub delv(k) 
arr_len = ubound(arr,2) 
for i=0 to arr_len 
if k=arr(0,i) then 
v = arr(1,i) 
for k = i to arr_len-1 
arr(0,k) = arr(0,k+1) 
arr(1,k) = arr(1,k+1) 
next 
arr_len = arr_len - 1 
redim preserve arr(1,arr_len) 
exit for 
end if 
next 
end sub 

'获得MtMap中键值的数量 
public property get count() 
count = arr_len 
end property 

'清空MtMap中所有的键值 
public sub clear() 
arr_len = 0 
redim arr(1,1) 
end sub 
end class 
%>

时间: 2024-09-21 12:00:39

用ASP实现hashMap功能的类的相关文章

ASP实现类似hashMap功能的类_应用技巧

java中的hashMap存取数据非常方便,可惜ASP中没有类似的类.作者在开发程序中需要类似的数据类型,于是构造了一个能基本类似hashMap功能的类,可以实现键值存取操作等,存取的数据可以为ASP 中的任何基本类型. 下面是程序的代码,贴到一个空的ASP中可以直接运行. <% set jb51 = new Jb '给mp对象赋值 jb51.putv "a","jb51.net" jb51.putv "b","www.jb51.

ASP实现类似hashMap功能的类

java中的hashMap存取数据非常方便,可惜ASP中没有类似的类.作者在开发程序中需要类似的数据类型,于是构造了一个能基本类似hashMap功能的类,可以实现键值存取操作等,存取的数据可以为ASP 中的任何基本类型. 下面是程序的代码,贴到一个空的ASP中可以直接运行. <% set jb51 = new Jb '给mp对象赋值 jb51.putv "a","jb51.net" jb51.putv "b","www.jb51.

ASP中一个字符串处理类(VBScript)

vbscript|字符串 这个类是用于处理字符串的,是老外写的,我把里面的功能和参数加了说明 使用方法: =============== test.asp================ <!--#include file="StringOperations.asp"--> <%dim strset str = New StringOperations test = str.toCharArray("check this out") respons

ASP程序代码执行时间统计类

程序|统计|执行 ASP程序代码执行时间统计类 第一次写ASP类,实现功能:分段统计程序执行时间,输出统计表等. 程序代码: Class ccClsProcessTimeRecorder''ASP程序代码执行时间统计类  Private ccInti,ccIntNonceTime,ccIntDecimal Private ccIntStartTime,ccIntEndTime,ccIntNow,ccIntNonce Private ccStrInterval,ccStrEvent,ccStrTi

ASP 三层架构 Error处理类_应用技巧

从这节开始,将会给大家介绍几个ASP中的三大通用类,它贯穿于我所设计的三层架构中,是对ASP语法的扩展,可以提高很多细节处理上的效率,可以算是一点点框架的味道. 本节介绍错误处理类,类名Con_Error,在代码页面之初就进行初始化,实例名为e,以下的e.add 即使用该错误类的实例化对象进行操作. 方法介绍: e.Add(ByVal vErrorMessage ) 记录一个错误,并且设置 e.Error = true . 在程序检测用户名合法性等地方发现错误时,就调用这个方法,记录一个错误信息

ASP 三层架构 Error处理类

从这节开始,将会给大家介绍几个ASP中的三大通用类,它贯穿于我所设计的三层架构中,是对ASP语法的扩展,可以提高很多细节处理上的效率,可以算是一点点框架的味道. 本节介绍错误处理类,类名Con_Error,在代码页面之初就进行初始化,实例名为e,以下的e.add 即使用该错误类的实例化对象进行操作. 方法介绍: e.Add(ByVal vErrorMessage ) 记录一个错误,并且设置 e.Error = true . 在程序检测用户名合法性等地方发现错误时,就调用这个方法,记录一个错误信息

ASP程序代码执行时间统计类_ASP CLASS类

第一次写ASP类,实现功能:分段统计程序执行时间,输出统计表等. 复制代码 代码如下: Class ccClsProcessTimeRecorder '程序作者:明月星光 '作者主页:http://www.5iya.com/blog 'http://www.kuozhanming.com 'ASP程序代码执行时间统计类   Private ccInti,ccIntNonceTime,ccIntDecimal   Private ccIntStartTime,ccIntEndTime,ccIntN

ASP实例:一个简单的ASP无组件上传类

简单的ASP无组件上传类,发出来让大家看看.可以做做实验! 以下为引用的内容: <%@ language="javascript"%><%var self = Request.serverVariables("SCRIPT_NAME");if (Request.serverVariables("REQUEST_METHOD")=="POST"){        var oo = new uploadFile(

IIS6.0下ASP的新增功能

iis ASP 的新增功能除了内部性能增强和优化外,该版本的 Active Server Pages(ASP) 还具有如下新功能: 更好的国际化和 UTF-8 支持 改进的 POST 支持 ASP 挂起检测 常用文件的缓存 UNC 增强 ASP 中的 COM+ 服务 单元模型选择 并排集合 COM+ 分区 跟踪程序 事务 ASP 的新配置数据库属性 更好的国际化和 UTF-8 支持UTF-8 支持已经被扩展到所有 ASP 内置对象的属性和方法中.上一版本的 ASP 仅在响应和写入方面支持 UTF