![]() |
| | Themen-Optionen |
| | Nach oben #1 |
| n00b -.- Registriert seit: 10.11.2005
Beiträge: 318
|
Moin, nein ich bin nicht unter die Delphi-Programmierer gegangen. Jedenfalls nicht ganz freiwillig (obei mir die Sprache mittlerweile sogar ziemlich symphatisch ist). Es geht mehr darum, dass ich ein JugendForscht Projekt am laufen habe, für das ich mir selber ein Programm schreiben muss und der Lehrer, der das Projekt betreut, nur Delphi kann. Ja, jedenfalls, das Programm läuft eigentlich vollkommen fehlerfrei, nur im wichtigstens Teil gibt es ein Problem: Das Programm soll mittels einer Timers messen, wie lang es für eine bestimmte Berechnung braucht. Und die Ergebnisse sind, nun ja, manchmal etwas seeeeehr seltsam. So braucht er für die Berechnung eines 5-stelligen String laut Timer manchmal 0,08 Sekunden, manchmal 160 Sekunden - und das beim selben String!! Irgendwie kann das ja nicht sein, zumal er eigentlich immer um die 160 Sekunden liegt (handgestoppt). Da ich denke, dass ich den Code braucht: Sagt mir am besten, was genau ihr braucht, ich würde den ganzen Code nämlich nur ungern hier reinstellen (ich bin mir nicht so sicher wie das mit dem Wettbewerbsbedingungen ist). Soweit so gut Gruß Booki P.S. Vielleicht sollte ich euch sagen was es überhaupt für ein Projekt ist? Naja, es geht drum zu überprüfen, wie sehr sich verschiedene Algorithmen beim "Passwort-Knacken" unterscheiden. Auf dieser Basis will ich dann versuchen, ein möglichst sicheres Passwort für 4, 5, 6 etc. Stellen zu machen (ähm, naja, 4 Stellen ist relativ: Ich würde mich unwohl fühlen, wenn man durchschnittlich 36 Sekunden zum Knacken des Passworts braucht P.P.S Und bitte überschätzt meine Delphikenntnisse nicht. Ich kann genau das, was ich für die Umsetzung des Projekts brauche. Und kein Stück mehr.
__________________ Alle wollen doch nur mein Bestes. Aber sie werden es nicht kriegen! |
| | |
| | Nach oben #2 |
| Martin Breuer Registriert seit: 17.08.2005 Ort: Berlin
Beiträge: 1.642
|
hm... meine delphi jahre sind ne weile her, aber rein logisch müsstest du doch nur zu beginn des knackens den timer starten und wenn der "ich habs geschafft" moment kommt, stoppen. Ansonsten mal die Google-Codesearch nutzen: http://www.google.com/codesearch?hl=...&start=10&sa=N ich hab da das gefunden: http://www.google.com/codesearch?hl=...DITimer.pas#a0
__________________ I did it my way - Senseless-Blog |
| | |
| | Nach oben #3 |
| n00b -.- Registriert seit: 10.11.2005
Beiträge: 318
|
Jou, ich starte den Timer auch vor der Schleife und beende ihn sobald er das Passwort errechnet hat: Code: timer1.enabled := true;
...
if pwok then
begin
timer1.Enabled := false;
showmessage('Bingo! Das Passwort lautete: '+pwtry);
end
...
__________________ Alle wollen doch nur mein Bestes. Aber sie werden es nicht kriegen! |
| | |
| | Nach oben #4 |
| Martin Breuer Registriert seit: 17.08.2005 Ort: Berlin
Beiträge: 1.642
|
Ist delphi case sensitive? hab grade keinen schimmer, aber einmal hast du timer1.enabled und einmal timer1.Enabled
__________________ I did it my way - Senseless-Blog |
| | |
| | Nach oben #5 |
| n00b -.- Registriert seit: 10.11.2005
Beiträge: 318
|
Ne, Delphi ist nicht case sensitive. Das sagt zumindest der Lehrer, der mir Delphi soweit beigebracht hat wie ich es kann... Und auch durch ausprobieren konnte nichts gegenteiliges festgestellt werden. Ich habs aber trotzdem aus Spaß an der Freude geändert. Nützt leider nichts....
__________________ Alle wollen doch nur mein Bestes. Aber sie werden es nicht kriegen! |
| | |
| | Nach oben #6 |
| Martin Breuer Registriert seit: 17.08.2005 Ort: Berlin
Beiträge: 1.642
|
Schon was bei Google-Codesearch diesbezüglich gefunden?
__________________ I did it my way - Senseless-Blog |
| | |
| | Nach oben #7 |
| n00b -.- Registriert seit: 10.11.2005
Beiträge: 318
|
Nein. Ich weiß auch ehrlich gesagt nicht, wie mir die Codesearch da weiterhelfen soll... Da guck ich mir halt den Code von anderen an... Und sehe wie die es eingebaut haben. Gut... Aber ich bin mir ja eigentlich ziemlich sicher, dass der Einbau stimmt... Ach wisst ihr was, ich stell einfach die ganze Procedure hier rein. Vielleicht ist es auch nur ein Bug, der z.B. den Wert ungewollt nochmal auf 0 setzt: Code: procedure TForm1.Button1Click(Sender: TObject);
begin
s := 1;
timer1.Enabled:=true;
while (not pwok ) and (s <= smax)
do begin
while (s <= smax) and (charnumbergotten(s)=ZMax)
do begin
s := s+1;
//showmessage( inttostr(charnumbergotten(s)));
end;
setchar(s, charnumbergotten(s)+1); //!!!!!!
// showmessage('');
panel1.caption:='s= '+inttostr(s)+' '+pwtry; panel1.Repaint ;
if pwok then
begin
timer1.Enabled:=false;
showmessage('Bingo! Das Passwort lautete:'+pwtry);
end
else
begin //herunterschleifen
while(s > 1)
do begin
s := s-1;
setchar(s, 1);
end;
while (charnumbergotten(s) < ZMax ) and not pwok
do begin
setchar(s, charnumbergotten(s)+1);
if pwok then
begin
timer1.Enabled:=false;
showmessage('Bingo! Das Passwort lautete:'+pwtry);
end;
end;
end;
end;
time:=timer1.tag;
time:=time/100;
panel1.caption:=floattostr(time)+' Sekunden';
end;
Den Code nehm ich dann raus wenn das Problem gelöst ist, okay? Gruß Booki
__________________ Alle wollen doch nur mein Bestes. Aber sie werden es nicht kriegen! |
| | |
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
| |