都速度进来找个对象吧~~

社区服务
高级搜索
猴岛论坛辅助工具都速度进来找个对象吧~~
发帖 回复
正序阅读 最近浏览的帖子最近浏览的版块
0个回复

都速度进来找个对象吧~~

楼层直达
mimi_rice

ZxID:55494225

等级: 上士
举报 只看楼主 使用道具 楼主   发表于: 2015-05-29 0

给大家介绍个实用的对象


本文按键学院

技术支持


按键学院交流群(1群已满):376122403


零基础学按键精灵群(2群):372671254


引用
今天的院刊给大家介绍一个对象——VBS对象。什么是VBS对象呢?{:4_92:}
简单的来说VBS对象就像一个大的仓库,VBS有很多不同的对象,每个对象就是不同的分类,每个分类下一些方法或者属性,可以很

便捷的实现按键精灵本身无法实现的功能。
那今天就先给大家介绍其中一种对象,FileSystemObject 对象,我们可以利用他很便捷

对电脑上的文件和文件夹进行操作,并且可以获取到文件的相关信息



[tr=YellowGreen]文件系统对象FSO简介

要了解FileSystemObject 对象我们首先要知道下FSO这个东西。

FSO就是VBS的文件系统对象,这个对象里有包含了Drive、Folder、

File、FileSystemObject和TextStream五个对象。这

几个对象就集成了基本上所有对文件以及文件夹的操作。

我们这次就先给大家介绍 FileSystemObject 这个对象的一些使用方法。这个对象是FSO里的很重要也是很常用的一个对象,他包含

了对文件以及文件夹还有收集文件信息的一些方法。

接下来让我们来学习下这个对象的使用方法以及给大家介绍一些使用的代码范例



[tr=YellowGreen] 实用代码

读取、写入文件

看到这个功能,可能很多童鞋或不屑一顾,这个读取和写入文件的命令按键精灵本身也有,干嘛还要费劲的学这个VBS的对象?
按键精灵本身确实也有读取文件的命令,但是他有一个致命的缺陷。就是在读取多行内容的时候会自动把每行的内容使用“|”符号

进行分割,当我们需要分别提取出每行的内容的时候就需要这样写代码
  1. Path = "c:\ajjl.txt"
  2. Text = Plugin.File.ReadFileEx(Path)
  3. TextEx = split(Text, "|")
  4. For i = 0 To UBound(TextEx) -1
  5.         TracePrint TextEx(i)
  6. Next

这样写看上去是不会有什么问题,但是如果文本里的单独一行内容有包含“|”这个符号的话,那最终

的提取结果就会发生改变。


嘿嘿,这就要靠 FileSystemObject 对象来解决这个问题了。{:4_101:}

通过这个对象读取出来的文件信息,每行内容会以回车换行符来分隔,就不会产生这种干扰的问题了。好

了,不多说废话,直接上代码
  1. Path = "c:\ajjl.txt"
  2. Set fso = CreateObject("Scripting.FileSystemObject") //首先需要创建一个对象
  3. Set fileobj = fso.OpenTextFile(Path, 1, False) //打开文件以便后续操作
  4. ReadFile = fileobj.ReadAll //读取文件内容
  5. MessageBox  ReadFile
  6. Call fileobj.Close() //关闭文件
  7. Set fso = Nothing //清空对象,释放系统资源
  8. Set fileobj = Nothing
  9. TextEx = split(ReadFile, vbcrlf) //使用vbcrlf换行符进行分割
  10. For i = 0 To UBound(TextEx)
  11.         TracePrint TextEx(i)
  12. Next






命令名称 OpenTextFile
命令功能 打开指定的文件并返回一个 TextStream 对象,以便对文件进行读

写操作
命令参数 filename 指明要打开的文件名称


iomode  输入/输出模式:
1 表示已只读模式打开,无法写入文件;
2 表示以写方式打开文件;
8 表示打开文件并从文件末尾开始写
create  Boolean 值,指出当指定的 filename 不存在时是否能够创建新文件,允许创建新文件

时为 True,否则为 False
format  指出以何种格式打开文件
TristateTrue 以 Unicode 格式打开文件。
TristateFalse 以 ASCII 格式打开文件。
TristateUseDefault 使用系统默认值打开文件


遍历指定文件夹的文件

FileSystemObject对象不单只能读写文件,还能获取到文件的一些信息,比如说创建日期什么的。

下面这段代码就可以实现遍历所有符合条件的文件

  1. Function 遍历指定目录下所有文件名(文件夹路径,后缀名,最旧时间,特定字符串)
  2.     Dim 文件名,fso,folder,f,files,arr1
  3.     文件名 = ""
  4.     Set fso = CreateObject("Scripting.FileSystemObject")//创建对象
  5.     Set folder = fso.getfolder(文件夹路径) //获取系统中指定的文件夹信息
  6.     Set files = folder.files//获取文件夹内的文件名字
  7.     For Each f In files //遍历files对象中每个元素(既是每个文件)
  8.             arr1 = split(f.name, ".") //f.name指的是文件的名字
  9.             时间 = f.DateCreated //获取到文件的创建日期
  10.             If arr1(UBound(arr1)) = 后缀名 and 时间 > 最旧时间  and instr(f.name, 特定字符串) = 0 Then
  11.             文件名 = 文件名 & f.name & "|"        
  12.             End If
  13.     Next
  14.     Set fso = Nothing
  15.     遍历指定目录下所有文件名 = Split(文件名, "|")
  16. End Function




院刊目录
http://bbs.anjian.com/thread-549014-1-1.html


« 返回列表
发帖 回复