快速业务通道

编写可以打开文本文件并打乱在该文件中所找到的单词顺序的vbs脚本

作者 佚名 来源 ASP编程 浏览 发布时间 2013-07-09
,i的值将为7,这恰好是文件中的单词数减1。(为什么?因为其中含有8项数据的数组的大小为7。)
别担心;到最后您应该会明白其原因所在。
我们希望如此。
关闭文件之后,初始化数组arrWords,设置其大小为i(表示文本文件中的单词数减1)。同时将i值赋给变量intWordsLeft,通过它我们将知道有多少单词要被打乱顺序。最后,将变量z的值设为0;我们将使用z将已打乱顺序的单词填充到数组中。实际上,我们要做的就是从Dictionary中随机取出一个单词然后将其添加到数组中。因为单词是以随机的顺序从Dictionary中取出的,因此它们在数组中的顺序将被“打乱”(以不同的顺序存储)。
现在,到了很有趣的这部分。建立一个Do循环,其一直运行到我们用完Dictionary对象中的所有单词。接着使用下面这两行代码从0和Dictionary对象中数据项的数目(或者至少是数据项的实际数减1,因为Dictionary对象中的第一个数据项为第0项)之间随机选择一个数字:
Ranndomize
rndWord=Int((intWordsLeft-0+1)*Rnd+0)
之后我们将intWordsLeft值减1;这样做是为了始终记住我们现在要处理的单词比之前所处理的少了一个。
那么我们需要这个随机数字做什么呢?我们现在要做的就是使用该值从Dictionary中随机抽取一个单词。为此,我们可以创建一个Dictionary项的集合,然后在变量strText中存储此随机选择的数据项数字的值:
colItems=objDictionary.Items
strText=colItems(rndWord)
换句话说,Banana当前为Dictionary中的第1项。假定在生成随机数字的时候得到的是1。这意味着我们将从Dictionary中将第1项的值取出;然后,也就意味着单词Banana被存储在变量strText中。
明白了吗?从Dictionary中随机取出一个单词之后,我们即需要将该值存储到某个地方。为此我们使用数组arrWords,使strText成为数组中的第一项:
Words(z)=strText
我们如何知道该值应成为第一项?因为我们将该值赋给第z项,而第z项等于0。之后,我们立即将z加1,z将等于1。这也意味着,通过循环下一次我们会将检索到的值赋给数组中的第二项。
单词Banana使用过之后,下一步就是将该单词从Dictionary中删除;否则我们可能会再次使用该单词。要删除此单词,只需调用Dictionary对象的Remove方法,将变量strText作为要删除的项进行传递即可:
objDictionary.Remove(strText)
一切均顺利完成之后,数组arrWords将包含一个从文本文件中所取出的已打乱顺序的单词的列表:
Banana
Elephant
Giraffe
Apple
Fish
Carrot
Horse
Dog
很好,是吧?随后我们只要打开文件Words.txt(这次是进行写入),然后使用已打乱顺序的列表arrWords替换现有内容即可:
复制代码 代码如下:

SetobjFile=objFSO.OpenTextFile("c:\scripts\words.txt",ForWriting)
ForEachstrIteminarrWords
objFile.WriteLinestrItem
Next
objFile.Close
下次您的女儿(谁的女儿都一样)运行教育程序的时候,她所看到的将是以随机方式显示的单词。
顺便说一句,我们并没有像人们所谣传的那样对此专栏的文本进行了该脚本的测试。在您好,脚本专家!专栏中的单词可不是随机选择的;每个单词都是我们花了无数的时间进行辛勤的探索和耕耘所得到的。
事实上,就在我们做完所有认真细致的耕耘之后。我们的编辑又将所有单词的顺序随机打乱。如果您能看到该专栏编辑之前的样子,就一定会为它的美妙而吃惊不已!(编辑附注:您看到的会是这种编辑之前的情况:将您吃惊感到。使用不会但是单词这个我“美妙”。)

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号