仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 444|回复: 9
打印 上一主题 下一主题

[学习教程] ASP编程:经由过程数组给您的文件排序

[复制链接]
不帅 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 23:18:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
写软件都是想的时间比写的时间要长的.如果反过来了就得看看是什么原因了.另外大家可以回去问问公司里的小MM.(一般企业里,跟你们交付软件接触得最多的是她们)排序|数组当您利用FILESYSTEMOBJECT工具取得某个目次下的文件列表的时分,你有无发明没法把持它们的排序体例,好比依照名字排序,依照扩大名排序,依照文件巨细排序等等,让我们试着用数组给它们排排序儿。
假如您想经由过程名字排序,那将长短常复杂的,可是假设你想经由过程文件巨细大概文件创建工夫等等来排序的时分,那末将有点贫苦。我们将经由过程二维数组做到这一点。
上面的代码演示了怎样经由过程选择排序体例到达的我们目标,单击排序,点两次就反着排了。

<HTML>
<HEAD>
<TITLE>文件排序演示</TITLE>
</HEAD>

<BODY>

<%
设定一个演示目次,:)

CONSTDIRECTORY="/"

用常数界说排序体例
CONSTFILE_NAME=0依照名字排序……顺次类推
CONSTFILE_EXT=1
CONSTFILE_TYPE=2
CONSTFILE_SIZE=3
CONSTFILE_CREATED=4
CONSTFILE_MODIFIED=5
CONSTFILE_ACCESSED=6

取得排序命令,默许为依照名字排序

req=Request("sortBy")
IfLen(req)<1ThensortBy=0ElsesortBy=CInt(req)
req=Request("priorSort")
IfLen(req)<1ThenpriorSort=-1ElsepriorSort=CInt(req)

设置倒序
IfsortBy=priorSortThen
reverse=true
priorSort=-1
Else
reverse=false
priorSort=sortBy
EndIf

接上去入手下手我们真实的代码了。。。

path=Server.MapPath(DIRECTORY)

Setfso=CreateObject("Scripting.FileSystemObject")
SettheCurrentFolder=fso.GetFolder(path)
SetcurFiles=theCurrentFolder.Files

给这些文件做一个轮回

DimtheFiles()
ReDimtheFiles(500)我任意定的一个巨细
currentSlot=-1startbeforefirstslot

我们将文件的一切相干信息放到数组内里

ForEachfileItemincurFiles
fname=fileItem.Name
fext=InStrRev(fname,".")
Iffext<1Thenfext=""Elsefext=Mid(fname,fext+1)
ftype=fileItem.Type
fsize=fileItem.Size
fcreate=fileItem.DateCreated
fmod=fileItem.DateLastModified
faccess=fileItem.DateLastAccessed
currentSlot=currentSlot+1
IfcurrentSlot>UBound(theFiles)Then
ReDimPreservetheFiles(currentSlot+99)
EndIf
放到数组里
theFiles(currentSlot)=Array(fname,fext,ftype,fsize,fcreate,fmod,faccess)
Next

如今都在数组里了,入手下手下一步


fileCount=currentSlot文件数目
ReDimPreservetheFiles(currentSlot)

排序
(8暗示string)

IfVarType(theFiles(0)(sortBy))=8Then
IfreverseThenkind=1Elsekind=2给字符排序
Else
IfreverseThenkind=3Elsekind=4数字、工夫。。。
EndIf

Fori=fileCountTO0Step-1
minmax=theFiles(0)(sortBy)
minmaxSlot=0
Forj=1Toi
SelectCasekind
Case1
mark=(strComp(theFiles(j)(sortBy),minmax,vbTextCompare)<0)
Case2
mark=(strComp(theFiles(j)(sortBy),minmax,vbTextCompare)>0)
Case3
mark=(theFiles(j)(sortBy)<minmax)
Case4
mark=(theFiles(j)(sortBy)>minmax)
EndSelect
IfmarkThen
minmax=theFiles(j)(sortBy)
minmaxSlot=j
EndIf
Next

IfminmaxSlotiThen

temp=theFiles(minmaxSlot)
</p>asp对于服务器的要求较高,一般的服务器如果访问量一大就垮了,不得不重启。
飘飘悠悠 该用户已被删除
沙发
发表于 2015-1-20 09:29:06 | 只看该作者
从事这个行业,那么你可以学ASP语言,简单快速上手,熟练dreamweav排版,写asp代码,熟练photoshop处理图片,打好基础就行了
冷月葬花魂 该用户已被删除
板凳
发表于 2015-1-24 16:22:48 | 只看该作者
不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍
飘灵儿 该用户已被删除
地板
发表于 2015-1-27 12:32:25 | 只看该作者
虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。
爱飞 该用户已被删除
5#
发表于 2015-2-5 05:26:28 | 只看该作者
他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。
蒙在股里 该用户已被删除
6#
发表于 2015-2-11 05:55:59 | 只看该作者
最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。
7#
发表于 2015-3-1 22:48:46 | 只看该作者
Session:这个存储跟客户端会话过程的数据,默认20分钟失效
变相怪杰 该用户已被删除
8#
发表于 2015-3-11 00:15:24 | 只看该作者
没有坚实的理论做基础,那么我们连踏入社会第一步的资本都没有,特别对于计算机专业的学生学好专业知识是置关重要的。在这里我侧重讲一下如何学习ASP,从平时的学习过程中。
兰色精灵 该用户已被删除
9#
发表于 2015-3-17 16:42:42 | 只看该作者
我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.
再现理想 该用户已被删除
10#
发表于 2015-3-24 12:31:07 | 只看该作者
另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-21 08:02

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表