文本问题有多种选择随机化

时间:2014-11-06 15:42:47

标签: vba

我有一个包含超过11,000个多项选择和匹配问题的文本文件。除了具有不同数量的给定选择之外,问题具有不同的大小。以下是匹配问题的示例,其中有五个给定的选项取自该文本文件:

Type: MT
1) Can you match each of these cities to their location? Drag the cities on the right to match them with the locations on the left.
~ Correct. You got all these matches correct.
@ Incorrect. You got some of these wrong.
a. North = Turin
b. Center = Rome
c. South = Naples
d. Sicily = Palermo
e. Sardinia = Cagliari

在将此文件处理为HTML生成引擎之前,我需要将所有这些问题混洗,即随机将每个问题的位置更改为文件中的,因此最终产品将极不可预测。每个问题编号(如类型:)所述是无关紧要的。

我在这个link找到了一个Word vba代码,但它需要进行大量的专家修改以适应不同大小的问题。

对此事的专家协助深表感谢。提前谢谢。

1 个答案:

答案 0 :(得分:1)

首先,我同意蒂姆·威廉姆斯在上面的评论中说这不完全是StackOverflow帖子中预期的特异性水平。

那就是说,如果我是你,我会将这个问题分解为两个部分。

  • 首先 - 弄清楚是否有一个文本字符串可用于识别构成"问题的块。"例如,如果每个问题都以" Type:"开头,那么您可以在文件中找到第一个实例,然后找到第二个实例,它们之间的所有内容构成一个"问题&#34 ;。然后,您可以将该问题放在一个数组中。

  • 第二 - 随机化数组。可能有很多方法可以做到这一点。一种可能是使用介于0和问题数组长度之间的函数之间的rand两次,并为每个随机数切换问题。然后,相对于数组中的项目总数重复多次(例如,如果您有100个问题,请执行"切换" 125次以充分随机化输出。然后打印数组回到原始文件。

对于上面的方法,您需要在文件中使用一些分隔符(我假设分隔符为"类型:")以打破上述问题。如果这样的分隔符不存在,则可能需要一些更复杂的逻辑。