会员: 密码:  免费注册 | 忘记密码 | 会员登录 网页功能: 加入收藏 设为首页 网站搜索  
技术文档 > Web开发 > ASP
起泡法按照时间排列文件(FSO)
发表日期:2003-08-18 00:00:00作者:s 出处:  

本站的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 DateDiff("d",filename_arr(i,1),filename_arr(i+1,1))>0 Then '判断时间先后,如果比后面的晚,交换数据

  '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

%>

返回顶部】 【打印本页】 【关闭窗口

关于我们 / 给我留言 / 版权举报 / 意见建议 / 网站编程QQ群   
Copyright ©2003- 2024 Lihuasoft.net webmaster(at)lihuasoft.net 加载时间 0.00367