Nevím, kde je chyba pokud to včera fungovalo a nyní ne. Nezměnil se obsah souboru database.txt? Jinak ale uvedený kód bude fungovat asi trošičku jinak, než si představujete. Budete-li totiž mít ve svém souboru více hesel (každé samozřejmě na samostatném řádku), pak budete tímto postupem kontrolovat vždy jen shodu s posledním z nich. Důvodem je Váš cyklus While, ve kterám sice postupně čtete jednotlivé řádky souboru, ale přečtenými hodnotami přepisujete stále stejnou proměnnou. Samotné testování byste tedy měl umístit dovnitř cyklu, třeba takto:
Dim heslo_kontrola As String = TextBox4.Text
Dim shoda As Boolean = False
Dim soubor As New IO.StreamReader("database.txt") 'otevřít soubor
While Not soubor.EndOfStream 'číst, dokud nejsme na konci souboru
If soubor.ReadLine() = heslo_kontrola Then shoda = True
End While
If shoda Then
MsgBox("kontrola proběhla úspěšně")
Else
MsgBox("špatné kontrolní heslo!")
End If
soubor.Close()
|