fso读取中文文件 按照中文里面的数字来排序
这几天帮客户做一个自动上传数据的程序,做到最后发现 不会按照名称来排序,所有就得研究为什么了,好了直接来贴下数据好了 目录数据如下:
图片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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |