2016-04-23 28 views
-2

私はユーザ名/パスワードの作成者として書かれたプログラムを持っていますが、入力しようとしているユーザ名を取得するかどうかを判断するセクションがあります。ユーザーに知らせる。それは動作していないようです。次のように私のコードは次のとおりです。TXTファイルを1行ずつ読む(VB 2010)

z = File.OpenText(a) 
    Do Until z.EndOfStream() = True 
     Dim password As String 
     password = CStr(z.ReadLine() & vbCrLf) 
     If password = TextBox1.Text Then 
      errors = errors + 1 
      msgPrompt = msgPrompt & "The username you entered, " & TextBox1.Text & " is already taken." 
     End If 
     If errors > 1 Then 
      TextBox5.Text = errors & " errors occured." 
     ElseIf errors = 0 Then 
      TextBox5.Text = "No errors!" 
     Else 
      TextBox5.Text = errors & " error occured." 
     End If 

     If errors >= 1 Then 
      Button2.Enabled = True 
     Else 
      Button2.Enabled = False 
     End If 
    Loop 

パスワードはとても基本的に、私はプログラムは1で、各エントリ1の上に行くと、それは、ユーザが入力したものと一致するかどうかを確認したい、.txtファイルで行ずつ保存されます。私が間違ったことをしているなら、私に知らせてください。私はこのスクリプトを動作させるのが大好きです。

+2

ここで何をしようとしていますか?まず、ファイルを1行ずつ読み込むときに、 'vbCrLf'を行に追加する必要はありません。第二に、なぜあなたのパスワードとあなたのパスワードがエラーとして一致しないかを考えていますか?だから、あなたがここにいる人々があなたを助けることができるように、正確に何をしたいのかを説明してください..また、あなたは[Dictionary](https://msdn.microsoft.com/en-us/library) /xfhwa508(v=vs.110).aspx)をクリックしてください。 –

答えて

1

あなたの質問の見出しが正しいとすれば、あなたのコードの変数の名前は間違っています - これは非常に重要ではありませんが、ソフトウェアを維持するために6ヶ月以内に戻ってくる人は混乱します。また、コードが正しく実行されている場合、すべてのユーザー名が一意であるため、エラー数を返す必要はありません。

元のコードよりも長いですが、TextExists関数を使用して、パスワードファイルやユーザー名ファイルなどの選択したファイルを開くことができます。この場合のユーザー名とパスワードは、ファイル。それらはもちろん保存、およびロードされたときに復号化される前に、ユーザー名とパスワードが暗号化されなければならないパスワードの深刻な保管のために

'Opens the file and if it contains the input text, returns True. Otherwise returns false 
Private Function TextExists(filename As String, inputText As String) As Boolean 
    Dim z As StreamReader = File.OpenText(filename) 
    Dim fileText As String 
    Dim msgPrompt As String = "" 
    Do Until z.EndOfStream() = True 
     fileText = CStr(z.ReadLine()) 
     If inputText = fileText Then 
      Return True 
     End If 
    Loop 
    Return False 
End Function 

Private Sub CheckUserName() 
    If TextExists(a, TextBox1.Text) Then 
     MessageBox.Show("Username Already Exists") 
     Button2.Enabled = False 
    Else 
     Button2.Enabled = True 
    End If 
End Sub 

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    CheckUserName() 
End Sub 

。このような機密情報をプレーンテキストで保存することは、常に非常に悪い考えです。

+0

ありがとう!私はこれらのファイルを暗号化/解読する必要があることを知っていますが、それをどうするかわかりません。参考資料はありますか? – David

+0

https://msdn.microsoft.com/en-us/library/ms172831.aspx ..または.. http://www.codeproject.com/Articles/1086643/Cryptography-in-NET-for-Beginners –

関連する問題