ověření hesla   zodpovězená otázka

VB.NET

Ahoj,zbastlil jsem kód,který má z database.txt ověřit heslo.Pokud je shoda ,pokračovat podle kódu,pokud shoda není tak také,problém je že ještě dnes mi to fungovalo,ale najednou jsem zapnul PC že to doprogramuji a ono to najednou hlásí pouze že není shoda kde je chyba?

Dim heslo_kontrola As String = TextBox4.Text
        Dim heslo As String
 Dim soubor As New IO.StreamReader("database.txt")       'otevřít soubor
        While Not soubor.EndOfStream        'číst, dokud nejsme na konci souboru
heslo = (soubor.ReadLine())       'načíst první
        End While
If heslo = heslo_kontrola Then
            MsgBox("kontrola proběhla úspěšně")
        Else
            MsgBox("špatné kontrolní heslo!")

        End If
        soubor.Close()

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

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()

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Děkuji ,s trochou štěstí,snahy a pomoci jsem to vyřešil takto a funguje to do jisté míry k uspokojení (ještě pořád neumim data zapisovat,přesněji,přepisovat)

 Dim nalezeno As Boolean

        Dim heslo_kontrola As String = TextBox4.Text
        Dim heslo As String
        Dim soubor As New IO.StreamReader("database.txt") 'otevřít soubor

        While Not soubor.EndOfStream 'číst, dokud nejsme na konci souboru
            heslo = (soubor.ReadLine()) 'načíst první řádek z textu
            If heslo = heslo_kontrola Then
                nalezeno = True
            End If
End While

        soubor.Close()

        If nalezeno = True Then
            MsgBox("kontrola proběhla úspěšně")
        Else
            MsgBox("špatné kontrolní heslo!")

        End If

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback