正文

好东东 分享一下:使用起泡法按照时间排列文件2006-05-20 17:54:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/stef/14398.html

分享到:

Function  qipaosorting(path)  'path  =  "D:\spreadtrum  magazine\"     Set  FSO  =  Server.CreateObject("Scripting.FileSystemObject")    'FSO对象     Set  FD  =  FSO.GetFolder(path)    '获得文件夹     Set  F  =  FD.Files      '获得文件夹内文件     For  Each  OneFile  in  F    '列出所有的htm文件           filename  =  OneFile.Name         If  LCase(right(filename,3))  =  "htm"  Then    '只对htm文件处理           filename_arr0  =  filename_arr0  &  Left(filename,Len(filename))  &  "  ¦"    '获得主文件名,保存在变量中,0  ¦0  ¦形式                   filename_arr1  =  filename_arr1  &  DateValue(OneFile.datelastmodified)  &  "  ¦"    '获得文件最后修改日期                 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  '------结束起泡法------     qipaosorting  =  filename_arr    '返回二维数组    End  Function    '结束函数  ---------------------------------------------------------------   '***********************************************************  sub  sortA(  Arr)  '堆排序,复杂度n*log(n)/log(2),如果8个数就是24次,如果用冒泡是8^2=64次  dim  n,i,L,ir,rArr,j             n  =  ubound(Arr)              '7,8个元素         L  =  int(n  /  2)+1             ir  =  n         do                 if  L  >  1  then                         L  =  L  -  1                         rArr  =  Arr(L)                 else                         rArr  =  Arr(ir)                         Arr(ir)  =  Arr(1)                         ir  =  ir  -  1                         if  ir  =  1  then                             Arr(1)  =  rArr                             exit  sub                         end  if                 end  if                 i  =  L                 j  =  2  *  L                     while  j  <=  ir                         if  j  <  ir  then                                 if  Arr(j)  <  Arr(j  +  1)  then  j  =  j  +  1                         end  if                         if  rArr  <  Arr(j)  then                                 Arr(i)  =  Arr(j)                                 i  =  j                                 j  =  2  *  j                           else                                 j  =  ir  +  1                         end  if                 wend                 Arr(i)  =  rArr         loop  end  sub  '***********************************************************  sub  D2Arr(D,ArrI)  '字典Item转化为数组             dim  i,Dcount,Arr             Arr  =  D.Items             Dcount  =  D.Count             redim  ArrI(Dcount)             for  i=0  to  Dcount-1                                                 ArrI(i+1)=  Arr(i)               next  end  sub  '***********************************************************  

阅读(3421) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册