当前位置: 首页 > 图文教程 > 脚本技术 > VBScript > 用vbs实现对文本文件中的项计数

VBScript
用VBScript批量安装网络打印机和设置默认打印机
Vbs 脚本编程简明教程之一
vbs SendKey 用法 Sendkey 键盘对应的码表
用vbs 取得收藏夹里的所有链接名称和URL的脚本
link-view.vbs 页面链接查看
VBS读网页的代码
用VBScript写合并文本文件的脚本
vbscript ms owc 封裝代码
VbScript 封裝MS OWC(二)
vbs 注册表操作代码(添加删除)
用于修复XP中最小化程序 在任务栏显示图标的vbs脚本
完整的注册表操作实例 VBS脚本
vbs 注册表实现木马自启动
reg2vbs.vbs 将Reg文件转换为VBS文件保存 IT学习网修正版本
e是自然对数的底 e.vbs
vbs imail 密码解密
VBS Runas 自动输入密码, 明文
vbscript 三个数比较大小的实现代码
脚本 MsAgent组件 微软精灵 揪出系统自带的宠物
VBS InternetExplorer.Application的属性和方法介绍

VBScript 中的 用vbs实现对文本文件中的项计数


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-11   浏览: 68 ::
收藏到网摘: n/a

问:
嗨,脚本专家!如何向文本文件的顶部添加行?
-- FT
答:
您好,FT。您知道,在亚瑟·柯南·道尔爵士生涯的某一时刻,他实际上将夏洛克·福尔摩斯写死了,他认为他已写完了有关这个大侦探所有能写的一切。公众的疾呼很快改变了他的想法,他迅速地使夏洛克·福尔摩斯起死回生。(按照所有肥皂剧的那种基本情节主线一路创作下来。)
我们脚本专家对亚瑟·柯南·道尔爵士深感同情。毕竟,我们会周期性地想,“好了,到这里吧;我们已编写了有关文本文件所有能编写的一切。”我们刚有此想法,就立刻收到有关文本文件的一堆问题,其中包括三个人所问的同一问题:如何向文件文件的顶部添加行?
很简单,我亲爱的华生(啊,我亲爱的 FT)。所有您需要做的只是使用类似下面的脚本:
复制代码 代码如下:

Const ForReading = 1
Const ForWriting = 2
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("C:\Scripts\Test.txt", ForReading)
strContents = objFile.ReadAll
objFile.Close
strFirstLine = "This is the new first line in the text file."
strNewContents = strFirstLine & vbCrLf & strContents
Set objFile = objFSO.OpenTextFile("C:\Scripts\Test.txt", ForWriting)
objFile.WriteLine strNewContents
objFile.Close
注意。很有趣的是,在原本小说中夏洛克·福尔摩斯从没有说“很简单,我亲爱的华生”。我们不知道为什么他不那么说;他就是不那么说。

好了,现在游戏已经开始了,不是吗?我们首先创建一对常量 - ForReading 和 ForWriting,我们将在处理文本文件时使用这两个常量。我们创建一个 FileSystemObject 实例,然后使用 OpenTextFile 方法打开文件 C:\Scripts\Test.txt 以读取以下内容:
Set objFile = objFSO.OpenTextFile("C:\Scripts\Test.txt", ForReading)
现在文件已打开,我们使用 ReadAll 方法读取该文件的全部内容并将这些内容存储在称作 strContents 的变量中。然后我们立即关闭文件 Test.txt。为什么?是这样,通过 FileSystemObject 可打开文件进行读取或写入,但不能同时进行这两种操作。为向文件顶部添加新的一行,我们将必须对该文件进行写入;这意味着我们必须重新打开它,但这次是为了写入。
接下来我们需要为该文件构造新内容。我们不能直接向文本文件的顶部添加行;FileSystemObject 只允许向文本文件的末尾添加新行。因此,我们需要做的是在内存中创建一个全新的文件,然后用此新文件替换现有 Test.txt 的内容。新文件将由三部分组成:新的第一行;回车-换行;及该文件的现有内容。为构造此文件,我们首先使用下面的代码在称为 strFirstLine 的变量中存储新的第一行:
strFirstLine = "This is the new first line in the text file."
然后我们使用以下代码行合并新的第一行、回车-换行(使用 VBScript 常量 vbCrLf)及该文件的现有内容(存储在变量 strContents 中):
strNewContents = strFirstLine & vbCrLf & strContents
现在剩下的工作就是重新打开 Test.txt(这次是为了写入),然后使用 WriteLine 方法用新文件替换现有内容:
Set objFile = objFSO.OpenTextFile("C:\Scripts\Test.txt", ForWriting)
objFile.WriteLine strNewContents
然后我们调用 Close 方法,就像这样,大功告成。好了,文件关闭。嗨,我们只是想要模仿一下夏洛克·福尔摩斯。
说到这,您知道夏洛克·福尔摩斯有一个叫麦克罗夫特的哥哥吗?这是真的。按照推测麦克罗夫特很有天赋,但却因为太懒而没做出什么有趣或有用的事。
嗨,您说这听起来有点耳熟是何用意?没关系;您很可能指的是某个其他的每天编写脚本的专栏作家。