2012-04-26 2 views
1

Мне нужна помощь в создании функции, которая открывает файл и для каждой новой строки, делает переменную вроде explode("\n", $var) в PHP. Я пробовал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/en-US/library/tabh47cf%28v=vs.100%29.aspx). Вот пример взрыва в C#: http://www.dotnetperls.com/explode-function –

+0

Можете ли вы предоставить код для 'GetFileContents'? Похоже, что вы возвращаете значение как один «String», а не массив 'String()'. Вам понадобится массив, если вы собираетесь перебирать их. – mellamokb

+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

ответ

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

+0

Это дает мне синтаксическую ошибку @ System.IO.File.ReadLines System.IO импортируется ------------ ------- Для каждого файла .ReadLines (word) As String На словах ------------------- - это то, что я использую – user1328301

+0

// Редактировать http://pastebin.com/0AAfwVQt Я изменил это, но получаю ошибку «Слово не объявлено» – user1328301

Смежные вопросы