Autor Beitrag
Mr.D3ath
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 24



BeitragVerfasst: 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 user profile iconGausi: Topic aus Windows API verschoben am Mi 28.03.2007 um 21:28
Robinator
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 275

WinXP
BDS 2006
BeitragVerfasst: Mi 28.03.07 21:12 
Das is jetzt nur für Großbuchstaben, lässt sich aber leicht beliebig erweitern
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
//das musst du einmal aufrufen bevor die Funktion aufgerufen wird
  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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 24



BeitragVerfasst: Mi 28.03.07 21:17 
hi nochmals also ich muss sagen das is mir schon eindeutig zu hoch =(
Robinator
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 275

WinXP
BDS 2006
BeitragVerfasst: Mi 28.03.07 21:25 
user profile iconMr.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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 32



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 24



BeitragVerfasst: Mi 28.03.07 21:42 
Hi,

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 196

Windows Vista
Delphi 7 Prof.
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 24



BeitragVerfasst: Mi 28.03.07 22:09 
Hi,
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 2088



BeitragVerfasst: 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:

ausblenden 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 user profile iconRobinator für dich geschrieben hat:

ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 24



BeitragVerfasst: Mi 28.03.07 22:45 
Hi,
Ich post nun den Code nocheinmal da Karlson sich verschrieben hat !
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 196

Windows Vista
Delphi 7 Prof.
BeitragVerfasst: 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.

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 2088



BeitragVerfasst: 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 // end; 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: 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. :wink:
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Mi 04.04.07 14:12 
vielleicht sollte sich der threadersteller einfach mal den Suche in: Delphi-Forum, Delphi-Library CRASHKURS von user profile iconChristian S. angucken, dann bekommt er das auch hin ;) weil in diesem kurs ja angeblich das nicht drinsteht... :roll: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: 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.