Antwort
 
Themen-Optionen
Alt 23.12.2006, 11:54 Nach oben    #1
n00b -.-
 
Benutzerbild von Bookworm
 
Registriert seit: 10.11.2005
Beiträge: 318
Standard [DELPHI]Problem mit Timer

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 -). Das klingt jetzt vielleicht so, als wär das ganze auf der leicht auf der (wannabe) Hacker-Spur, sollte und soll es aber nicht sein.
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!
Bookworm ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 23.12.2006, 12:52 Nach oben    #2
Martin Breuer
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.642
Standard

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
WarrenFaith ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 23.12.2006, 15:51 Nach oben    #3
n00b -.-
 
Benutzerbild von Bookworm
 
Registriert seit: 10.11.2005
Beiträge: 318
Standard

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
...
Das ist es ja theoretisch....
__________________
Alle wollen doch nur mein Bestes. Aber sie werden es nicht kriegen!
Bookworm ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 23.12.2006, 17:30 Nach oben    #4
Martin Breuer
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.642
Standard

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
WarrenFaith ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 23.12.2006, 18:42 Nach oben    #5
n00b -.-
 
Benutzerbild von Bookworm
 
Registriert seit: 10.11.2005
Beiträge: 318
Standard

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!
Bookworm ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 23.12.2006, 18:52 Nach oben    #6
Martin Breuer
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.642
Standard

Schon was bei Google-Codesearch diesbezüglich gefunden?
__________________
I did it my way - Senseless-Blog
WarrenFaith ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 23.12.2006, 20:21 Nach oben    #7
n00b -.-
 
Benutzerbild von Bookworm
 
Registriert seit: 10.11.2005
Beiträge: 318
Standard

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;
Der Intervall von Timer1 steht auf 100, also auf 100stel Sekunden.

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!
Bookworm ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:52 Uhr.


Powered by vBulletin® Version 3.7.3 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44