Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
eriX
Anmeldungsdatum: 01.03.2008 Beiträge: 24 Wohnort: Sachsen
|
Verfasst am: 25.04.2008, 19:28 Titel: Passwortabfrage |
|
|
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 |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 26.04.2008, 12:10 Titel: |
|
|
Hilfe wofür? Was ist dein Problem?  _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
eriX
Anmeldungsdatum: 01.03.2008 Beiträge: 24 Wohnort: Sachsen
|
Verfasst am: 26.04.2008, 17:44 Titel: |
|
|
Ich hab kein plan! |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 26.04.2008, 20:26 Titel: |
|
|
Die Frage war ja auch: Von was?
Bei http://www.antonis.de/faq dürftest du was passendes finden. _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
eriX
Anmeldungsdatum: 01.03.2008 Beiträge: 24 Wohnort: Sachsen
|
Verfasst am: 27.04.2008, 09:18 Titel: |
|
|
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 |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 27.04.2008, 11:47 Titel: |
|
|
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 |
|
 |
eriX
Anmeldungsdatum: 01.03.2008 Beiträge: 24 Wohnort: Sachsen
|
Verfasst am: 27.04.2008, 12:16 Titel: |
|
|
naja gleich in der 1 Zeile Fehler: "expectet constant"
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 |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 27.04.2008, 21:13 Titel: |
|
|
Gerade nochmal getestet, der Code funktioniert bei mir (FBC 0.18.5) problemlos.
Was gibt ein
auf der Kommandozeile bei dir aus? _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 28.04.2008, 13:14 Titel: |
|
|
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 |
|
 |
eriX
Anmeldungsdatum: 01.03.2008 Beiträge: 24 Wohnort: Sachsen
|
Verfasst am: 28.04.2008, 16:22 Titel: |
|
|
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 |
|
 |
Devilkevin aka Kerstin

Anmeldungsdatum: 11.11.2004 Beiträge: 2532 Wohnort: nähe Mannheim
|
Verfasst am: 28.04.2008, 16:27 Titel: |
|
|
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  _________________ www.piratenpartei.de |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 28.04.2008, 21:03 Titel: |
|
|
@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 |
|
 |
eriX
Anmeldungsdatum: 01.03.2008 Beiträge: 24 Wohnort: Sachsen
|
Verfasst am: 03.05.2008, 19:06 Titel: |
|
|
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 |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 03.05.2008, 19:27 Titel: |
|
|
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 |
|
 |
eriX
Anmeldungsdatum: 01.03.2008 Beiträge: 24 Wohnort: Sachsen
|
Verfasst am: 03.05.2008, 19:45 Titel: |
|
|
Danke Danke Danke
ES GEHT!!!
THX |
|
Nach oben |
|
 |
eriX
Anmeldungsdatum: 01.03.2008 Beiträge: 24 Wohnort: Sachsen
|
Verfasst am: 03.05.2008, 20:16 Titel: |
|
|
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 |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 03.05.2008, 21:02 Titel: |
|
|
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.  _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
eriX
Anmeldungsdatum: 01.03.2008 Beiträge: 24 Wohnort: Sachsen
|
Verfasst am: 03.05.2008, 21:31 Titel: |
|
|
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 |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 03.05.2008, 21:45 Titel: |
|
|
So passt es.
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 |
|
 |
AndT
Anmeldungsdatum: 02.04.2007 Beiträge: 481
|
Verfasst am: 03.05.2008, 21:53 Titel: |
|
|
Das Teil sollte weiterhelfen (aber bitte keine Gotos mit reinschreiben) : 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...  |
|
Nach oben |
|
 |
|