起泡法按照时间排列文件(FSO)

发表于:2007-06-30来源:作者:点击数: 标签:
本站的http://btyz.51web.cn/collection.asp没有使用按照时间排列文件的,后来想到如果按照文件建立的时间为顺序排列,那就太棒了。幸好学过C语言,起泡法只是一个简单的算法而已,但是在网页编程中要用到什么算法的还是比较少的,我已经用过的算法只有递归和
本站的http://btyz.51web.cn/collection.asp没有使用按照时间排列文件的,后来想到如果按照文件建立的时间为顺序排列,那就太棒了。幸好学过C语言,起泡法只是一个简单的算法而已,但是在网页编程中要用到什么算法的还是比较少的,我已经用过的算法只有递归和起泡法。有问题大家多多指点。
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%
@#######################################@#
@### Copyright (C) 2003 醉雨梧桐 All rights reserved. ##@#
@### Powered by 醉雨梧桐 ##@#
@### http://btyz.51web.cn/ ##@#
@### winterfire@163.com ##@#
@#######################################@#
Function file_list(path)
Set FSO=Server.CreateObject("Scripting.FileSystemObject") @#FSO对象
Set FD=FSO.GetFolder(path) @#获得文件夹
Set F=FD.Files @#获得文件夹内文件
For Each OneFile in F @#列出所有的txt文件
filename=OneFile.Name
If LCase(right(filename,3))="txt" Then @#只对txt文件处理
filename_arr0=filename_arr0&Left(filename,Len(filename)-4)&"|" @#获得主文件名,保存在变量中,0|0|形式
filename_arr1=filename_arr1&DateValue(OneFile.DateCreated)&"|" @#获得文件建立日期
End If
Next
filename_arr0=split(filename_arr0,"|") @#转化为文件名数组
filename_arr1=split(filename_arr1,"|") @#转化为日期数组
@#把文件名和时间按照顺序加入二维数组
dim filename_arr()
redim filename_arr(ubound(filename_arr0),2) @#重新定义
for i=0 to ubound(filename_arr0)-1
filename_arr(i,0)=filename_arr0(i)
filename_arr(i,1)=filename_arr1(i)
next
erase filename_arr0 @#删除数组
erase filename_arr1
@#------按照时间的顺序使用起泡法排列数组------
for j=0 to ubound(filename_arr)-1
for i=0 to ubound(filename_arr)-1-j
if filename_arr(i,1)<filename_arr(i+1,1) Then @#判断时间先后,如果比后面的晚,交换数据
@#交换前后数组内容--文件名
temp=filename_arr(i,0)
filename_arr(i,0)=filename_arr(i+1,0)
filename_arr(i+1,0)=temp
@#交换前后数组内容--建立时间
temp=filename_arr(i,1)
filename_arr(i,1)=filename_arr(i+1,1)
filename_arr(i+1,1)=temp
end if
next
next
@#------结束起泡法------
file_list=filename_arr @#返回二维数组
End Function @#结束函数

file_arr=file_list("g:\my documents\txt\") @#调用函数返回二维数组
for i=0 to ubound(file_arr)-1
Response.Write(file_arr(i,0)&"--"&file_arr(i,1)&"<br/>") @#输出结果
next
%>

原文转自:http://www.ltesting.net