快速业务通道

fso读取中文文件 按照中文里面的数字来排序

作者 佚名 来源 网络推广 浏览 发布时间 2012-02-19

  这几天帮客户做一个自动上传数据的程序,做到最后发现 不会按照名称来排序,所有就得研究为什么了,好了直接来贴下数据好了

  目录数据如下:

  

目录名称

  图片1

  上面是客户 的一个目录里面的数据。当然他有很多。这些不在我们研究的范围内

  刚程序程序是这样的

  <%

  dir = "shipin"

  Set fso = CreateObject("scripting.FileSystemObject")'创建文件对象

  Set f = fso.GetFolder(server.MapPath(dir)) '读取文件夹

  Set ff =f.Files'取文件名称

  For Each f1 in ff '循环目录

  filename=f1.name'取得文件名称

  Response.Write(filename)

  Next

  %>

  这样就可以读取到这个目录的文件名称了,当然这个大家都会了

  问题是他默认是 倒着来的。那么我们就要去改变他的排序方式。不同于php php的话有专门的函数可以解决,比如 ksort natsort

  那么我们要怎么改变他了。一个思路就这样的。取文件的 名称并把中文过滤掉,然后利用循环判断每个数组大小 来改变,当然这样效率会变低。但是也没办法了。只能放他慢慢运行啊,如果大家有好的方法记得分享,代码如下:

  <%

  '取文件名称数组函数

  function RegExpTestsp(str,pat)

  Dim r, Match, Matches

  Set r = New RegExp

  r.Pattern = pat

  r.IgnoreCase = false

  r.Global = True

  Set Matches = r.Execute(str)

  For Each Match in Matches

  RetStr = RetStr & Match.Value

  Next

  RegExpTestsp = RetStr

  End function

  pat="[\d]+"

  '排序 函数

  Function Sort1(input)

  Dim outPut

  'Dim input

  Dim i

  i=0

  Dat=split(input,",")

  For k=0 to Ubound(Dat)

  For i=0 to ubound(Dat)-1

  If int(RegExpTestsp(Dat(i+1),pat))

  outPut=Dat(i)

  Dat(i)=Dat(i+1)

  Dat(i+1)=outPut

  End If

  Next

  Next

  '

  For each outPut in Dat

  Response.Write outPut&"
"

  next

  End Function

  dir = "shipin"

  Set fso = CreateObject("scripting.FileSystemObject")'创建文件对象

  Set f = fso.GetFolder(server.MapPath(dir)) '读取文件夹

  Set ff =f.Files

  For Each f1 in ff '循环目录

  filename=filename&f1.name&","

  Next

  'response.Write(filename)

  Sort1(filename)

  %>

  这样就可以了! 这个程序大家利用到更加庞大的程序里面去。。转载请著名来之http://www.002t.cn/yingxiaoyuwangluo/724.html 智软品牌设计(小戴) 宁波网络公司

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号