2012-04-26 15 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/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と呼ばれていることに気づきます。ファイルは1行に1単語ありますか?大したことはありませんが、ループがそれぞれの行であることを確認して、それぞれの単語(1行に複数の単語がある場合)ではないことをもう一度確認したいと思います。

+0

1行に1語、はいです。私はSystem.IO.File.ReadLines(OpenFileDialog1.FileName)を調べます – user1328301

+0

@ System.IO.File.ReadLinesという構文エラーが表示されます System.IOがインポートされました ------------ ------- 各ファイルに対して.ReadLines(単語)を文字列で表します。 ------------------- は私が使用しているものです – user1328301

+0

//編集http://pastebin.com/0AAfwVQt 私はそれに変更しましたが、エラーが発生します "Wordが宣言されていません" – user1328301

関連する問題