-2

我正在尝试制作一些将生成随机数的代码,然后检查文本文件中每一行的数字以查看是否已经生成。除了检查文本文件中生成的数字的代码外,我什么都有。有任何想法吗?

这是我到目前为止的代码:

    Dim Rlo As New IO.StreamReader("C:\Users\Somebody\Documents\Visual Studio 2012\Projects\RobloxRecruitV1\RobloxRecruitV1\bin\Debug\" & TheFileName.Text & ".txt")

    Dim firstLine As String
    'read first line
    firstLine = Rlo.ReadLine()
    'read secondline
    TheText.Text = Rlo.ReadLine()

    rndnumber = New Random
    number = rndnumber.Next(firstLine, TheText.Text)
    TextBox1.Text = number.ToString
4

1 回答 1

1

我不能给你确切的代码(我已经很久没有在 VB6 中做过任何事情了......)

但....

我可以告诉你,使用流阅读器是错误的方法。

流阅读器正是它的名字所暗示的。一个恒定的数据流,它开始,然后在到达结束时停止。

现在,虽然您确实可以在小范围内在流中来回搜索,但在这种情况下,这并不是您真正需要的。

您需要将文件的所有行加载到内存数组或某种哈希表中,然后您的任务就变成了查看给定索引是否存在的任务。

如果您别无选择,只能按原样使用磁盘上的文件(例如由于大小限制),那么您需要的方法是:

1)打开文件 2)将您的位置设置为开头 3)进入一个循环读取连续行 4)一旦您有了与您要查找的计数相对应的行,关闭文件并结束 5)循环返回直到没有更多行左 6) 关闭文件

打开和关闭,然后每次重置都很重要,这样您就可以确切地知道每次从文件中的哪个位置开始,理论上您可以保持文件打开并重置位置,但在我看来这可能是危险的尤其是如果您有其他进程写入它。

如果您的文件不是很大,那么我会选择内存中的方法,加载文件,对内存中的行数组执行操作,然后在退出前保存它。

于 2013-05-26T14:38:10.537 回答