2012-05-02 9 views
0

私は、 "a a"というユーザー名とパスワードを持つclients.txtファイルを持っています。これは、私が間違っていない場合、ファイルから読み込み、それらがファイルに存在するかどうかを教えてください。ファイルから読み込んだ文字列を比較するとNullReferenceExceptionが発生しますか?

編集:clients.txtファイルの2行目に、ユーザー名とパスワードとして「b b」があり、正常に動作します。

ここピック:(新しいユーザーが画像を投稿することはできません)

StreamReader sr = new StreamReader("clients.txt"); 
    int findIndex = -1; 
    string userpass = "#"; 
    while (findIndex == -1 && sr.ReadLine() != null) 
    { 
     findIndex = userpass.IndexOf(txtUserName.Text + " " + txtPassword.Password); 
     userpass = sr.ReadLine(); 
    } 
    sr.Close(); 
+0

いくつかのコードを参照する必要があります。テキストとして - コードのイメージは、してください。 –

+0

デバッガは例外をキャッチしているので、その行のコントロールと変数を調べ、どちらがnullであるかを確認することができます。 –

+0

良い点@ダッシュ - .Passwordが見えませんでした!どちらも助けにならないでしょう! :o) –

答えて

3

あなたのwhile()ステートメントが行を揺るがしています。本文内でReadLine()コールを移動する必要があります。

while (findIndex == -1) { 
     userpass = sr.ReadLine(); 
     if (userpass == null) break; 
     findIndex = userpass.IndexOf(txtUserName.Text + " " + txtPassword.Password); 
    } 

パスワードをクリアテキストでテキストファイルに入れないでください。

2

あなたのwhile文でsr.Readlineへのあなたの呼び出しは読み(そして無視)テキストファイルの最初の行を、その最初ます比較される行は、sr.ReadLineの2回目の呼び出しの後にテキストファイルの2行目になります。

コードをリファクタリングして、sr.ReadLineの呼び出しから常に応答を取得する必要があります。

関連する問題