2012-04-26 69 views
1

我需要幫助使一個功能,打開一個文件,併爲每一個新行,在PHP中使像explode("\n", $var)變量。我試過VB.NET對於每一個新行

Dim words As String = GetFileContents(OpenFileDialog1.FileName) 
For Each word As String In words 
    Dim doHash As String = MD5(word) 
    If String.Equals(doHash, hash.Text) Then 
     Label2.Text = "derp" 
    Else 
     Label2.Text = "lol" 
    End If 
Next 

但它使每個字母成爲一個新的變量。

+0

您可能正在尋找['String.Split'](http://msdn.microsoft.com/zh-CN/library/tabh47cf%28v=vs.100%29.aspx)。以下是C#中爆炸的示例:http://www.dotnetperls.com/explode-function – 2012-04-26 17:52:55

+0

您可以提供'GetFileContents'的代碼嗎?它看起來像是將值作爲單個String而不是String的數組返回。如果你要迭代它們,你需要一個數組。 – mellamokb 2012-04-26 17:52:57

+1

閱讀['String.Split'](http://msdn.microsoft.com/en-us/library/system.string.split.aspx)和/或['File.ReadLines'](http:///msdn.microsoft.com/en-us/library/dd383503.aspx)。 – vcsjones 2012-04-26 17:53:14

回答

1

您想使用System.IO.File.ReadLines(OpenFileDialog1.FileName)。這將導致For Each循環分別獲取每條線。

具體做法是:

For Each word As String In File.ReadLines(OpenFileDialog1.FileName) 
    Dim doHash As String = MD5(word) 
    If String.Equals(doHash, hash.Text) Then 
     Label2.Text = "derp" 
    Else 
     Label2.Text = "lol" 
    End If 
Next 

我注意到,你的PHP例子肯定是分裂的新行,但你的循環變量稱爲word。你的文件每行有一個單詞嗎?沒關係,但我想仔細檢查一下你是否可以得到每個,而不是每個單詞(如果每行有多個單詞)。

+0

每行有一個字,是的。我將看看System.IO.File.ReadLines(OpenFileDialog1.FileName) – user1328301 2012-04-26 18:02:18

+0

它給我一個語法錯誤@ System.IO.File.ReadLines System.IO被導入 ------------ ------- For Each File.ReadLines(word)As String In words ------------------- 就是我正在使用的 – user1328301 2012-04-26 18:04:09

+0

//編輯http://pastebin.com/0AAfwVQt 我改變了,但我得到的錯誤 「Word未聲明」 – user1328301 2012-04-26 18:06:58