哦,当然,这看起来有些不可思议;确实是件不可思议的差事(至少对系统管理员来讲是这样的)。但是,不管您相信与否,这其中是有逻辑的,我们也将逐步让您明白这种逻辑。
脚本的第一部分确实相当简单。我们定义一对常量 - ForReading 和 ForWriting,我们将在处理文本文件时使用这两个常量。然后创建两个对象:Scripting.Dictionary 和 Scripting.FileSystemObject。我们将使用 Dictionary 对象作为从文本文件中所读取单词的临时仓库;而使用 FileSystemObject 与该文本文件进行实际的交互。
接下来使用 OpenTextFile 方法打开文件 C:ScriptsWords.txt 以进行读取。(注意常量 ForReading 的使用。)下一步,创建一个计数器变量 i 并将其值设置为 -1;我们将使用此变量跟踪文件中的单词数。为什么 i 要从 -1 而不是 0 开始?因为我们要使用 i 建立一个数组,并且由于数组中的第一项始终为 0(而不是 1),因此我们需要从 -1 开始。在我们读取第一个单词时,i 将被设置为 0,尽管听起来有些奇怪,但是大小为 0 的数组意味着该数组中包含一个数据项。
嗨,我们只是如实汇报,至于原因我们可不晓得。
接下来是下面这段代码:
我们在这里所做的就是逐行读取文件。对于文件中的每一行(即每个单词),我们将该值赋给一个名为 strLine 的变量;随后使用 Add 方法将该值添加到 Dictionary 对象之中,从而将 i 值加 1。文件读取结束之后,所有的单词都存储在 Dictionary 对象之中,i 的值将为 7,这恰好是文件中的单词数减 1。(为什么?因为其中含有 8 项数据的数组的大小为 7。)
别担心;到最后您应该会明白其原因所在。
我们希望如此。
关闭文件之后,初始化数组 arrWords,设置其大小为 i (表示文本文件中的单词数减 1)。同时将 i 值赋给变量 intWordsLeft,通过它我们将知道有多少单词要被打乱顺序。最后,将变量 z 的值设为 0;我们将使用 z 将已打乱顺序的单词填充到数组中。实际上,我们要做的就是从 Dictionary 中随机取出一个单词然后将其添加到数组中。因为单词是以随机的顺序从 Dictionary 中取出的,因此它们在数组中的顺序将被“打乱”(以不同的顺序存储)。
脚本的第一部分确实相当简单。我们定义一对常量 - ForReading 和 ForWriting,我们将在处理文本文件时使用这两个常量。然后创建两个对象:Scripting.Dictionary 和 Scripting.FileSystemObject。我们将使用 Dictionary 对象作为从文本文件中所读取单词的临时仓库;而使用 FileSystemObject 与该文本文件进行实际的交互。
接下来使用 OpenTextFile 方法打开文件 C:ScriptsWords.txt 以进行读取。(注意常量 ForReading 的使用。)下一步,创建一个计数器变量 i 并将其值设置为 -1;我们将使用此变量跟踪文件中的单词数。为什么 i 要从 -1 而不是 0 开始?因为我们要使用 i 建立一个数组,并且由于数组中的第一项始终为 0(而不是 1),因此我们需要从 -1 开始。在我们读取第一个单词时,i 将被设置为 0,尽管听起来有些奇怪,但是大小为 0 的数组意味着该数组中包含一个数据项。
嗨,我们只是如实汇报,至于原因我们可不晓得。
接下来是下面这段代码:
我们在这里所做的就是逐行读取文件。对于文件中的每一行(即每个单词),我们将该值赋给一个名为 strLine 的变量;随后使用 Add 方法将该值添加到 Dictionary 对象之中,从而将 i 值加 1。文件读取结束之后,所有的单词都存储在 Dictionary 对象之中,i 的值将为 7,这恰好是文件中的单词数减 1。(为什么?因为其中含有 8 项数据的数组的大小为 7。)
别担心;到最后您应该会明白其原因所在。
我们希望如此。
关闭文件之后,初始化数组 arrWords,设置其大小为 i (表示文本文件中的单词数减 1)。同时将 i 值赋给变量 intWordsLeft,通过它我们将知道有多少单词要被打乱顺序。最后,将变量 z 的值设为 0;我们将使用 z 将已打乱顺序的单词填充到数组中。实际上,我们要做的就是从 Dictionary 中随机取出一个单词然后将其添加到数组中。因为单词是以随机的顺序从 Dictionary 中取出的,因此它们在数组中的顺序将被“打乱”(以不同的顺序存储)。







