/ / VB.Net Splniť, či podmienka z príkazu BEPR OTHER vykoná - vb.net, if-statement

VB.Net Uspokojiť, či podmienka z príkazu FORCE BEFORE else vykoná - vb.net, if-statement

To ma zabíja, pretože viem, prečo to robíale ja neviem, ako to zastaviť.Čítam z textového súboru, kde mám 2 používateľov na 2 riadkoch: Bill | 777 & john | 333. Moje podmienečné vyhlásenie spĺňa obe podmienky, pretože keď to prechádza, odmietne jedného používateľa a akceptuje druhého používateľa, čím spôsobí, že urobí to či ono. Povedzte mi, prosím, ako to urobiť naraz. Loop cez text, získať správneho užívateľa a prejsť cez podmienky.

    Dim MyReader As New StreamReader("login.txt")

While Not MyReader.EndOfStream
Dim user As String = UsernameTextBox.Text + "|" + PasswordTextBox.Text
Dim names() As String = MyReader.ReadLine().Split()
For Each myName In names
If user = myName Then
Me.Hide()
OrderForm.Show()

Else
MsgBox("Wrong username and password")
End If
Next
End While
MyReader.Close()

odpovede:

0 pre odpoveď č. 1

Niečo podobné by malo fungovať:

    Using MyReader As New StreamReader("login.txt")
Dim GoodUser As Boolean = False
Dim user As String = UsernameTextBox.Text + "|" + PasswordTextBox.Text
While Not MyReader.EndOfStream
Dim user As String = UsernameTextBox.Text + "|" + PasswordTextBox.Text
Dim names() As String = MyReader.ReadLine().Split()
If Not names Is Nothing Then
For Each myName In names
If user = myName Then
GoodUser = True
Me.Hide()
OrderForm.Show()
Exit While
End If
Next
End If
End While
If Not GoodUser Then
MsgBox("Wrong username and password")
End If
End Using

Použitý blok automaticky zlikvidujeStreamReader. Boolean, ktorý označuje dobré prihlásenie, môže nastaviť stav, keď sa slučka Out ukončí. Exit Zatiaľ čo sa nájde správny používateľ, vyskočí sa zo slučky. Obvykle je dobré nastaviť podmienku na kontrolu prázdnych riadkov

Jedna vec, na ktorú sa dá pozerať. Ak používateľské meno obsahuje medzeru, váš kód nebude fungovať. Musíte buď obmedziť používateľské mená alebo použiť iný oddeľovač ako ~.


0 pre odpoveď č. 2

Skúste tento kód:

Using r As StreamReader = New StreamReader("login.txt")

Dim line As String = r.ReadLine
Dim user As String = UsernameTextBox.Text + "|" + PasswordTextBox.Text
Dim found As Boolean = False

Do While (Not line Is Nothing)
If (line = user) Then
found = True
break
End If
line = r.ReadLine
Loop
If (Not found) Then
MessageBox.Show("Wrong username and password")
End If
End Using