모든 구문이 정확하며 코드를 실행할 때 오류가 나타나지 않지만 양식의 로그인 버튼을 클릭하면 오류가 발생합니다. 배열 때문인 것 같습니다. 다음은 아래 코드입니다. 그것을 고정시키지 않는 것이 효율적 이도록 만드는 방법을 모르겠다.텍스트 파일에서 읽는 배열을 사용할 때 양식이 정지되는 이유는 무엇입니까?
Imports System.IO
Public Class Form3
Dim reader1 As System.IO.StreamReader
Dim classdata As Array
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
reader1 = My.Computer.FileSystem.OpenTextFileReader("C:\Users\ryanm_000\Documents\username and password.txt")
While reader1.EndOfStream = True
classdata = reader1.ReadLine.Split(",")
If TextBox1.Text = "admin" AndAlso TextBox2.Text = "iamtheboss" Then
MsgBox("Welcome Mr Khan", MsgBoxStyle.Information, "Admin")
Me.Hide()
My.Forms.Form7.Text = Now.ToString
My.Forms.Form7.Show()
ElseIf TextBox1.Text = classdata(0) AndAlso TextBox2.Text = classdata(1) Then
Me.Hide()
My.Forms.Form5.Text = Now.ToString
My.Forms.Form5.Show()
reader1.Close()
Else
MsgBox("Sorry, username or password is invalid, please try again", MsgBoxStyle.Information, "Error")
End If
End While
End Sub
End Class
[질문]을 읽고 [둘러보기]를 읽어보십시오. Visual Studio에는 * debugger *라는 훌륭한 도구가 있으므로 이러한 종류의 문제를 찾아서 수정할 수 있습니다. '모든 구문이 정확하고 아무런 오류도 나타나지 않습니다. '단지 컴파일한다는 것을 의미합니다. 버그가 없다는 것을 의미하지 않습니다. – Plutonix
EndOfStream = True 일 때 반복 중입니다. 그것은 불합리한 것처럼 보인다. 파일이 비어 있다면 그것은 항상 스트림의 끝이므로 영원히 반복됩니다. 파일이 비어 있지 않으면, 거짓이되고 결코 루프에 들어 가지 않습니다. (기본적으로, 내가 이것을 생각하면서 추가 한 phaon의 답변) – dwilliss
문제는 확실히 배열이 아닙니다. 코드 디버깅! 메서드의 첫 번째 문에 중단 점을 설정하고 한 줄씩 실행하면 작동하지 않는 이유를 알 수 있습니다! 참조 : [디버거와 함께 코드 탐색] (https://msdn.microsoft.com/en-us/library/y740d9d3.aspx?f=255&MSPPError=-2147217396). –