Autor |
Beitrag |
Mr.D3ath
      
Beiträge: 24
|
Verfasst: Mi 28.03.07 21:10
Hi ,
Ich habe schon gesucht aber leider nichts gefunden und in den Lern-Kursen oder wie auch immer finde ich auch nichts wie
kann ich es machen das mein programm ein Passwort erstellt mit zahlen und buchstaben in einer gewissen länge ?! Moderiert von Gausi: Topic aus Windows API verschoben am Mi 28.03.2007 um 21:28
|
|
Robinator
      
Beiträge: 275
WinXP
BDS 2006
|
Verfasst: Mi 28.03.07 21:12
Das is jetzt nur für Großbuchstaben, lässt sich aber leicht beliebig erweitern
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| Randomize;
Function RandomString(ALength : Byte) : String; var I: Integer; begin Result := ''; for I := 0 to ALength do Result := Result + Chr( 65 + Random(26)); end; |
gruss
_________________ erare humanum est
|
|
Mr.D3ath 
      
Beiträge: 24
|
Verfasst: Mi 28.03.07 21:17
hi nochmals also ich muss sagen das is mir schon eindeutig zu hoch =(
|
|
Robinator
      
Beiträge: 275
WinXP
BDS 2006
|
Verfasst: Mi 28.03.07 21:25
Mr.D3ath hat folgendes geschrieben: | hi nochmals also ich muss sagen das is mir schon eindeutig zu hoch =( |
könntest du das konkretisieren?
_________________ erare humanum est
|
|
SweeT_C
      
Beiträge: 32
|
Verfasst: Mi 28.03.07 21:32
"for to do" ist eine Schleife. Der Inhalt der SChleife wird so oft wiederholt bis "i" die Länge deines Strings erreicht. Das geschieht, indem dem in jedem Durchgang "i" automatisch erhöht wird...
Result ist der Ausgabestring...
Mit jedem Schritt wird Result ein weiterer Buchstabe zugewiesen. zb
'b'
'bm'
'bmu'
usw..
jetzt kommt der Teil, wo ich nciht 100% sicher bin.
Jeder Charakter kann @delphi per Char(nr d. Charakters) aufgerufen werden. Ich nehm mal an, dass die Charakter von 66 bis 91 die Buchstaben auf der Tastatur darstellen, deswegen 65 + eine Zufallszahl zwischen 1 und 26.
So, ich hoffe mal du hast es verstanden und ich hab alles richtig erklärt 
|
|
Mr.D3ath 
      
Beiträge: 24
|
Verfasst: Mi 28.03.07 21:42
Hi,
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| procedure TForm1.Button1Click(Sender: TObject) : String; var I: Integer; begin Randomize; Result := ''; for I := 0 to ALength do Result := Result + Chr( 65 + Random(26)); Button1.Caption := Result end;
end. |
dann müsste es so passen wenn ich es richtig verstanden habe?!
|
|
Dragonclaw
      
Beiträge: 196
Windows Vista
Delphi 7 Prof.
|
Verfasst: Mi 28.03.07 21:44
Jupp das hat SweeT_C schon ganz gut erklärt.
Zu Chr( 65 + Random(26))
Chr() wandelt ein ASCII Code in ein Zeichen um. 65 ist der Code für ein 'A', Random(26) gibt ja Zahlen im bereich von 0 bis 25 wieder. Also kann Char von 65 ('A') bis 90('Z') sein.
Allerdings, will er wahrscheinlich NICHT, dass das Passwort dann als Caption von nem Button ausgebenen wird.
Das würde ich dann eher in ein Edit packen, damit man das Passwort direkt rauskopieren kann
|
|
Mr.D3ath 
      
Beiträge: 24
|
Verfasst: Mi 28.03.07 22:09
Hi,
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure TForm1.Button1Click(Sender: TObject); var I: integer; begin Randomize; Result := ''; for I := 1 to 5 do; Result := Result + Chr( 65 + Random(26)); ShowMessage(Result); |
Fehler : Undefinierter Bezeichner Result
|
|
Karlson
      
Beiträge: 2088
|
Verfasst: Mi 28.03.07 22:36
Innerhalb einer Function ist Result eine automatisch anwesende Variable.
Innerhalb einer Procedure gibt es diese nicht, also solltest du es so machen:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure TForm1.Button1Click(Sender: TObject); var I: integer; ResultEx:string; begin Randomize; Result := ''; for I := 1 to 5 do; ResultEx := ResultEx + Chr( 65 + Random(26)); ShowMessage(ResultEx); end; |
Oder aber du nimmst die Function die Robinator für dich geschrieben hat:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| Function RandomString(ALength : Byte) : String; var I: Integer; begin Result := ''; for I := 0 to ALength do Result := Result + Chr( 65 + Random(26)); end;
procedure TForm1.Button1Click(Sender: TObject); var passwort : string; begin passwort:=RandomString(5); showmessage(Passwort); end; |
|
|
Mr.D3ath 
      
Beiträge: 24
|
Verfasst: Mi 28.03.07 22:45
Hi,
Ich post nun den Code nocheinmal da Karlson sich verschrieben hat !
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| var I: integer; ResultEx:string; begin Randomize; ResultEx := ''; for I := 1 to 5 do; ResultEx := ResultEx + Chr( 65 + Random(26)); ShowMessage(ResultEx); end; |
Eine Frage noch wie sag ich ihn das ich mehrere Buchstaben haben will und nicht nur eine?!
|
|
Dragonclaw
      
Beiträge: 196
Windows Vista
Delphi 7 Prof.
|
Verfasst: Mi 28.03.07 23:04
@Mr.D3ath:
Eh deine Funktion hat immer noch nen Fehler.
Mehrere Buchstaben bekommst du wenn du das ShowMessage aus der Schleife raus nimmst.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure TForm1.Button1Click(Sender: TObject); var I: integer; ResultEx:string; begin Randomize; ResultEx := ''; for I := 1 to 5 do ResultEx := ResultEx + Chr( 65 + Random(26)); ShowMessage(ResultEx); end; |
EDIT: Klammer??? Sry ich meinte Schleife
Zuletzt bearbeitet von Dragonclaw am Mi 28.03.07 23:44, insgesamt 1-mal bearbeitet
|
|
Karlson
      
Beiträge: 2088
|
Verfasst: Mi 28.03.07 23:20
Zitat: |
Mehrere Buchstaben bekommst du wenn du das ShowMessage aus der Klammer raus nimmst.
|
Sorry, aber was meinst du damit? Er bekommt x Buchstaben wenn er for i:=1 to x schreibt. Das Showmessage würde nur dann blockieren wenn der Code for i:=1 to 5 do begin hieße.
Folglich bekommt er mit dem das du gepostet hast das was er will. (Denn ';' hab ich leider übersehen).
Ich wollt das nur nochmal schreiben, weil deine Formulierung evt. falsch ausgelegt werden könnte. Ist ja aber eigentlich auch egal...
|
|
jasocul
      
Beiträge: 6393
Erhaltene Danke: 147
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: Do 29.03.07 08:20
Ich habe mir das jetzt nicht alles angesehen, aber schau hier mal unter PW-Generator:
www.jasocul.de/html/downloads.html
Der Source ist nicht besonders abgesichert. Bei falschen Parametern durch den Anwender kann es zu Fehlern kommen, aber das ist nicht mein Problem. 
|
|
F34r0fTh3D4rk
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Mi 04.04.07 14:12
vielleicht sollte sich der threadersteller einfach mal den CRASHKURS von Christian S. angucken, dann bekommt er das auch hin  weil in diesem kurs ja angeblich das nicht drinsteht...  programmieren ist eben nicht copy&paste. wenn du das dachtest, dann solltest du lieber gleich damit aufhören.
www.christian-stelzm...rtikel/crashkurs.htm
mdf
|
|
elundril
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Mi 04.04.07 14:19
ich hab mal einen Passwortgenerator geschrieben. Mit Zahlen, groß und kleinbuzchstaben. Wenn du willst kann ich mal dir den relevanten Code samt erklärung schicken. mitdabei hab ich auch noch eine überprüfung wie sicher der Code ist!
lg el
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|