编写可以打开文本文件并打乱在该文件中所找到的单词顺序的vbs脚本
作者 佚名
来源 ASP编程
浏览
发布时间 2013-07-09
问: 您好,脚本专家!我女儿有一种闪卡式程序,它能够获取文本文件中的单词列表。我如何编写一个脚本,使其能够打开该文件并自动打乱单词列表的顺序呢? --SN 答: 您好,SN。您知道,大多数情况下,我们尽力使此专栏关注实际的系统管理任务:我们告诉您如何设置默认打印机、如何禁用服务以及如何映射网络驱动器。不过,有时我们也愿意处理那种听起来就很有趣的问题,而最终的结果有多大用处我们是不会去考虑的。系统管理员通常需要打乱文本文件中单词列表的顺序吗?可能不需要。但是,若是只工作,不玩耍,想必聪明的小孩也会变傻,对不对? 实际上,有些小孩就算玩了也还是有点傻。但这是另外一回事。 明确这一点后,让我们看一下可以打乱文本文件中单词顺序的脚本。正如我们说过的那样,这样的工作在实际当中可能没有一点用处,但它是有点挑战性,并且也确实需要我们使用一点令人感兴趣的脚本编写小窍门。还有,如果不是这样,您可能永远也不会知道这样的窍门何时才能派上用场。 首先,假定您有个类似于下面这样的文本文件,文件中的所有单词按字母顺序排列: Apple Banana Carrot Dog Fish Elephant Giraffe Horse 如何才能打乱这些词的顺序呢?使用像下面这样的脚本即可: 复制代码 代码如下: ConstForReading=1 ConstForWriting=2 SetobjDictionary=CreateObject("Scripting.Dictionary") SetobjFSO=CreateObject("Scripting.FileSystemObject") SetobjFile=objFSO.OpenTextFile("c:\scripts\words.txt",ForReading) i=-1 DoUntilobjFile.AtEndOfStream strLine=objFile.Readline objDictionary.AddstrLine,strLine i=i+1 Loop objFile.Close DimarrWords() RedimarrWords(i) intWordsLeft=i z=0 DoWhileintWordsLeft>=0 Randomize rndWord=Int((intWordsLeft-0+1)*Rnd+0) intWordsLeft=intWordsLeft-1 colItems=objDictionary.Items strText=colItems(rndWord) arrWords(z)=strText z=z+1 objDictionary.Remove(strText) Loop SetobjFile=objFSO.OpenTextFile("c:\scripts\words.txt",ForWriting) ForEachstrIteminarrWords objFile.WriteLinestrItem Next objFile.Close 脚本的第一部分确实相当简单。我们定义一对常量-ForReading和ForWriting,我们将在处理文本文件时使用这两个常量。然后创建两个对象:Scripting.Dictionary和Scripting.FileSystemObject。我们将使用Dictionary对象作为从文本文件中所读取单词的临时仓库;而使用FileSystemObject与该文本文件进行实际的交互。 接下来使用OpenTextFile方法打开文件C:\Scripts\Words.txt以进行读取。(注意常量ForReading的使用。)下一步,创建一个计数器变量i并将其值设置为-1;我们将使用此变量跟踪文件中的单词数。为什么i要从-1而不是0开始?因为我们要使用i建立一个数组,并且由于数组中的第一项始终为0(而不是1),因此我们需要从-1开始。在我们读取第一个单词时,i将被设置为0,尽管听起来有些奇怪,但是大小为0的数组意味着该数组中包含一个数据项。 嗨,我们只是如实汇报,至于原因我们可不晓得。 接下来是下面这段代码: 复制代码 代码如下: DoUntilobjFile.AtEndOfStream strLine=objFile.Readline objDictionary.AddstrLine,strLine i=i+1 Loop 我们在这里所做的就是逐行读取文件。对于文件中的每一行(即每个单词),我们将该值赋给一个名为strLine的变量;随后使用Add方法将该值添加到Dictionary对象之中,从而将i值加1。文件读取结束之后,所有的单词都存储在Dictionary对象之中 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于编写可以打开文本文件并打乱在该文件中所找到的单词顺序的vbs脚本的所有评论