2013-05-26 36 views
-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 

回答

1

我無法給你確切的代碼(它一直以來我所做的任何事情在VB6 ......很長一段時間)

但...

我可以告訴你,使用流讀取器是錯誤的方法。

流讀者正是它的名字所暗示的。一個恆定的數據流,它開始,然後在達到結束時停止。

現在儘管您可以在很小程度上在一個流中來回尋找,但在這種情況下,這並不是您真正需要的。

您需要將文件的所有行加載到內存數組或某種哈希表中,然後您的任務只會成爲查看給定索引是否存在的一種。

如果你沒有選擇,只能使用該文件在磁盤上(由於尺寸限制,例如),那麼你需要的做法是這樣的:

1)打開文件 2)設置你的位置開始 3)進入一個循環讀取順序線 4)一旦你有對應的計數線你尋找關閉文件和結束 5)循環回合,直到沒有更多的線剩餘 6)關閉文件

打開和關閉,然後每次重置都很重要,這是爲了讓你知道精確LY在每一次從文件開始的文件中,您都可以在理論上保持文件打開並重置位置,但如果您有其他進程正在寫入文件,那麼在我看來這可能是危險的。

如果你的文件不是很大,那麼我會選擇內存方式,加載文件,對內存數組中的行進行操作,然後在退出前保存它。

+0

好主意。謝謝:D – user2422403

+0

沒問題。有時候不是爲了尋找某人提供某些代碼,或者甚至是爲了語法解決方案,通常都是從不同的角度來看問題,這是一種可怕的很多程序員(尤其是那些業內的新手)現在做這些事。 :-) – shawty