Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Passwortabfrage
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
eriX



Anmeldungsdatum: 01.03.2008
Beiträge: 24
Wohnort: Sachsen

BeitragVerfasst am: 25.04.2008, 19:28    Titel: Passwortabfrage Antworten mit Zitat

Hallo,
ich hatte schon mal etwas ähnliches gepostet. Nur aus dem Text bin ich nicht schlau geworden
Ich möchte ganz am anfang beim Programmstart eine Passwortabfrage
Dies soll so ablaufen:


Code:

Declare Function PasswortÜberprüfen () as Integer
Declare Function PasswortKonfig () as Integer
Declare Function gespeichert () as Integer
Declare Function Hauptmenü () as Integer



Überprüfen ob Datei C:\Windows\System32\PPAWD.lst existiert

JA = PasswortÜberfrüfen ()
NEIN = PasswortKonfig ()



Function PasswortÜberprüfen ()

Input "Bitte Passwort eingeben: ", PWEing
Überprüfung ob PWEing = PPAWD.lst Inhalt
JA = Hauptmenue ()
Nein = PWKonfig ()

end Function




Function PasswortKonfig ()

Input "Bitte PW eingeben: ", PWKonf
Input "Bitte PW erneut eingeben: ", PWKonf2
If PWKonf = PWKonf2 then
gespeichert ()
else
PasswortKonfig ()
end if

end function



Function gespeichert ()

Print "Gespeichert!"
sleep 1500
Hauptmenü ()

end Function




Function Hauptmenue ()
' TEXT
end Function



Danke im vorraus für evtl. Hilfe

MfG: Eric
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 26.04.2008, 12:10    Titel: Antworten mit Zitat

Hilfe wofür? Was ist dein Problem? zwinkern
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
eriX



Anmeldungsdatum: 01.03.2008
Beiträge: 24
Wohnort: Sachsen

BeitragVerfasst am: 26.04.2008, 17:44    Titel: Antworten mit Zitat

Ich hab kein plan!happy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 26.04.2008, 20:26    Titel: Antworten mit Zitat

Die Frage war ja auch: Von was? Zunge rausstrecken

Bei http://www.antonis.de/faq dürftest du was passendes finden.
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
eriX



Anmeldungsdatum: 01.03.2008
Beiträge: 24
Wohnort: Sachsen

BeitragVerfasst am: 27.04.2008, 09:18    Titel: Antworten mit Zitat

Ich weiß nicht so recht wie ich das schreib.
In dem QBasic Forum, konnte ich auch nicht wirklich was passendes finden.
Selbst wenn ich ein QBasic Code hätte wüsste ich nicht wie er in FB lautet.

Meiner Meinung nach ist das gar nicht so schwer ein unverschlüsselten Text in eine txt Datei zu schreiben und später mit einer Eingabe zu vergleichen..
Nur leider komme ich mit den Errorleveln und mit einigen anderen Befehlen nicht zurecht.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 27.04.2008, 11:47    Titel: Antworten mit Zitat

Den meisten QB-Code kannst du mit ganz geringfügigen Anpassungen in FB übernehmen.

Thema Dateien:
Code:

Dim As Integer iFile=FreeFile
Dim As String sText="Hello World!"

' Speichern
Open "ausgabedatei.txt" For Output As #iFile
Print #iFile, sText
Close #iFile

' Und wieder laden
Open "ausgabedatei.txt" For Input As #iFile
Line Input #iFile, sText
Close #iFile

' Zur Kontrolle ausgeben
Print sText


Ungetestet, sollte funktionieren. Für Fragen zu den einzelnen Befehlen hilft http://www.fb-referenz.de
Und für deine Passwort-Routine findest du hier im Board eben so etwas, wie in der oben verlinkten QB-Monster-FAQ.
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
eriX



Anmeldungsdatum: 01.03.2008
Beiträge: 24
Wohnort: Sachsen

BeitragVerfasst am: 27.04.2008, 12:16    Titel: Antworten mit Zitat

naja gleich in der 1 Zeile Fehler: "expectet constant" zwinkern

so wie ich den Quelltext lese Schreibt er Hello World und gibt dies wieder aus.
Ich bräuchte halt das was oben steht.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 27.04.2008, 21:13    Titel: Antworten mit Zitat

Gerade nochmal getestet, der Code funktioniert bei mir (FBC 0.18.5) problemlos.
Was gibt ein
Code:

fbc -version

auf der Kommandozeile bei dir aus?
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 28.04.2008, 13:14    Titel: Antworten mit Zitat

Ich könnte mir vielleicht vorstellen, dass die Umlaute Schwierigkeiten machen (falls die erste SUB tatsächlich PasswortÜberprüfen statt PasswortUeberpruefen lautet), aber das liefert mir ein "Expected End-of-Line" und kein "Expected Constant".
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
eriX



Anmeldungsdatum: 01.03.2008
Beiträge: 24
Wohnort: Sachsen

BeitragVerfasst am: 28.04.2008, 16:22    Titel: Antworten mit Zitat

Also ich nutze die Deutsche FBIDE 0.4.6

Ich bin aber grad auf Ubuntu umgestiegen mal sehen ob es da etwas passendes gibt.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Devilkevin
aka Kerstin


Anmeldungsdatum: 11.11.2004
Beiträge: 2532
Wohnort: nähe Mannheim

BeitragVerfasst am: 28.04.2008, 16:27    Titel: Antworten mit Zitat

eriX hat Folgendes geschrieben:

Ich bin aber grad auf Ubuntu umgestiegen mal sehen ob es da etwas passendes gibt.


Nicht vergessen die build-essentials zu installieren zwinkern
_________________
www.piratenpartei.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 28.04.2008, 21:03    Titel: Antworten mit Zitat

@eriX:
Kanns sein, dass du ein "Rund-um-Sorglospaket" hast?
Das was du nennst, ist die Version der Entwicklungsumgebung. Die ist allerdings was anderes als der eigentliche Compiler. Die Entwicklungsumgeblung (IDE) sorgt nur dafür, dass du komfortabler mit dem Compiler (FBC) arbeiten kannst.
Ich empfehle, mal den aktuellen Compiler von hier http://www.freebasic-portal.de/index.php?s=download&cat=7 zu downloaden.
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
eriX



Anmeldungsdatum: 01.03.2008
Beiträge: 24
Wohnort: Sachsen

BeitragVerfasst am: 03.05.2008, 19:06    Titel: Antworten mit Zitat

JA, ich hatte das rundum sorglos Paket!

Könnt ihr mir vll noch sagen, wo hier der Fehler liegt? wenn ich was falsches eingebe kommt trotzdem richtig.

Code:
Dim PW (2) as Integer 'PW-Feld erstellen

screen 19,32
Bload "Login.bmp"
COLOR &h000000, &hFFFFFF

Open "PPAWD.dll" for Input as #1 'Datei fürs lesen öffnen (Dateinummer 1)
Input #1 ,PW (1) 'Dateiinhalt in PW (1) speichern
Close # 1 'Datei Nummer 1 schließen

locate 32,15
Print "Das Standart Passwort ist: > ABC <"

locate 25,15
Input "Bitte geben Sie Ihr Passwort ein: ",PW (2) 'Eingabe des Users in PW (2) speichern


If PW (1) = PW (2) Then
'''''''''''''''''''''''''''''''
cls
Bload "Login.bmp"
COLOR &h000000, &hFFFFFF
locate 28,18
Print "Hallo"
sleep 5000
end
'''''''''''''''''''''''''''''''
Else
'''''''''''''''''''''''''''''''
cls
Bload "Login.bmp"
COLOR &h000000, &hFFFFFF
locate 28,18
Print "Programm wird beendet."
Sleep 2000
end
'''''''''''''''''''''''''''''''
End If


Das Teil hab ich im Ordner kompiliert wo die dll. eig. txt liegt
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 03.05.2008, 19:27    Titel: Antworten mit Zitat

eriX hat Folgendes geschrieben:
Könnt ihr mir vll noch sagen, wo hier der Fehler liegt?

"Standart Passwort" ist falsch, muss "Standardpasswort" oder "Standard-Passwort" heißen.
Ich vermute aber, du meinst was anderes:

Code:
Dim PW (2) as Integer

Wenn die beiden Passwörter Strings sind, dann werden sie beide mit dem entsprechenden Zahlenwert gespeichert - in aller Regel ist das der Wert 0. Probiere es mal lieber mit DIM PW (2) AS STRING.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
eriX



Anmeldungsdatum: 01.03.2008
Beiträge: 24
Wohnort: Sachsen

BeitragVerfasst am: 03.05.2008, 19:45    Titel: Antworten mit Zitat

Danke Danke Danke
ES GEHT!!! grinsen

THX
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
eriX



Anmeldungsdatum: 01.03.2008
Beiträge: 24
Wohnort: Sachsen

BeitragVerfasst am: 03.05.2008, 20:16    Titel: Antworten mit Zitat

Nochmal Danke wegen oben.

Wenn ich nun das PW ändern lassen will:

Der Benutzer gibt erst sein jetziges ein, wenn richtig weiter... Datei wird mit einer leeren überschrieben und der Benutzer gibt 1x sein neues unge* ein.

Code:
DIM PW (2) AS STRING 'PW-Feld erstellen

screen 19,32
Bload "Login.bmp"
COLOR &h000000, &hFFFFFF

Open "PPAWD.dll" for Input as #1 'Datei fürs lesen öffnen (Dateinummer 1)
Input #1 ,PW (1) 'Dateiinhalt in PW (1) speichern
Close # 1 'Datei Nummer 1 schließen

locate 32,15
Print "Das Standart Passwort ist: > ABC <"

locate 25,15
Input "Bitte geben Sie Ihr altes Passwort ein: ",PW (2) 'Eingabe des Users in PW (2) speichern


If PW (1) = PW (2) Then
'''''''''''''''''''''''''''''''
cls
Bload "Login.bmp"
COLOR &h000000, &hFFFFFF
locate 28,18
goto NPW:
end
'''''''''''''''''''''''''''''''
Else
'''''''''''''''''''''''''''''''
cls
Bload "Login.bmp"
COLOR &h000000, &hFFFFFF
locate 28,18
Print "Programm wird beendet."
Sleep 2000
end
'''''''''''''''''''''''''''''''
End If
'''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''
NPW:

SHELL "copy PPAWD2.dll PPAWD.dll"

Input "Neues Passwort: ", NPW
Write #1, "", NPW
OPEN "PPAWD.dll" FOR APPEND AS #1
CLOSE #1

OPEN "PPAWD.dll" FOR INPUT AS #1
DO
   FOR satz = 1 TO 2
      INPUT #1, tmp$
      PRINT tmp$;
   NEXT
   PRINT
LOOP UNTIL EOF(1)



Ich hab da jetzt versuch aus dem Beispiel schlau zu werden, und es abzuwandeln:

Code:
OPEN "Adressen.txt" FOR APPEND AS #1

WRITE #1, "Karl Mustermann", "12345", "Oberhausen", "Rottstraße 2"
WRITE #1, "Eva Mustermann", "12345", Oberhausen", Rottstraße 2"
WRITE #1, "Andrea Müller", "12346", "Unterhausen", "Wendeweg 17"
CLOSE #1

OPEN "Adressen.txt" FOR INPUT AS #1
DO
   FOR satz = 1 TO 4
      INPUT #1, tmp$
      PRINT tmp$;
   NEXT
   PRINT
LOOP UNTIL EOF(1)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 03.05.2008, 21:02    Titel: Antworten mit Zitat

Das am Ende ist ziemlich konfus.
Code:
WRITE #1, "", NPW
OPEN "PPAWD.dll" FOR APPEND AS #1
CLOSE #1

Du versuchst erst, in eine ungeöffnete Datei zu schreiben (was nicht funktionieren wird), dann öffnest du die Datei zum Anhängen von Daten (warum anhängen, wenn du überschreiben willst?) und schließt sie sofort wieder.
Und was/wozu willst du anschließend aus der Datei wieder auslesen?

Vielleicht solltest du die Bedeutung der verwendeten Befehle noch mal nachschlagen. zwinkern
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
eriX



Anmeldungsdatum: 01.03.2008
Beiträge: 24
Wohnort: Sachsen

BeitragVerfasst am: 03.05.2008, 21:31    Titel: Antworten mit Zitat

EDIT:

Ich habs!!!

Code:
SHELL "copy PPAWD2.dll PPAWD.dll"

Input "Neues Passwort: ", text$
OPEN "PPAWD.dll" FOR OUTPUT AS #1
WRITE #1, text$
CLOSE #1 
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 03.05.2008, 21:45    Titel: Antworten mit Zitat

So passt es. Ja!
Die Suffixe ($) werden übrigens im aktuellen FreeBASIC nicht mehr unterstützt, da kannst du besser ein DIM text AS STRING einsetzen. Und statt einer Dateikopie über Shell gäbe es noch die Möglichkeit, die alte Datei einfach mit NAME umzubenennen (evtl. musst du die alte Sicherung vorher löschen).
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
AndT



Anmeldungsdatum: 02.04.2007
Beiträge: 481

BeitragVerfasst am: 03.05.2008, 21:53    Titel: Antworten mit Zitat

Das Teil sollte weiterhelfen (aber bitte keine Gotos mit reinschreiben) zwinkern: http://forum.qbasic.at/viewtopic.php?t=4877

Sterne statt Klartext auf'n Bildschirm ist bei Passwörten besser oder?
Ein kleines Beispiel:
Code:
function passwort (Text as String) as string
    dim as string passworteingabe,taste
    Print Text;
    do
        sleep
        taste = inkey
        if taste=chr(13) then exit do
        passworteingabe+=taste
        print "*";
    loop
    function = passworteingabe
    print
end function


If passwort("Passwort eingeben:") = "abc" then
    PRINT "RICHTIG"
else
    PRINT "FALSCH"
end if

sleep


So wird die Existenz von Dateien geprüft:
Code:
' Diese Funktion gibt 1 aus wenn die angegebende Datei existiert, wenn nicht -1
Function CheckFile (Filename as String) as Integer
    dim as integer ff = FREEFILE
    open Filename for input as #FF
    if lof(1) = 0 then function = -1 else function = 1
    close #FF
end function

_________________
Bis irgendwann... grinsen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz