Entwickler-Ecke

Algorithmen, Optimierung und Assembler - Fortschritt einer For-Schleife in Progressbar`. Wie?


Larus - Mo 28.02.05 15:58
Titel: Fortschritt einer For-Schleife in Progressbar`. Wie?
Wie kann ich den Fortschritt meiner Forschleife in einer Progressbar anzeigen... Bisherige Versuch haben erst nichts dann 100 angezeigt weil das Programm während der Forschleife zu hängen scheint.


Stefan.Buchholtz - Mo 28.02.05 18:02
Titel: Re: Fortschritt einer For-Schleife in Progressbar`. Wie?
Larus hat folgendes geschrieben:
Wie kann ich den Fortschritt meiner Forschleife in einer Progressbar anzeigen... Bisherige Versuch haben erst nichts dann 100 angezeigt weil das Programm während der Forschleife zu hängen scheint.


Ruf in der Schleife Application.ProcessMessages auf - das sorgte dafür, das das Programm auch während die Schleife läuft, noch auf Benutzereingaben reagiert und seine Fenster neuzeichnet.

Stefan


Radioactive - Mo 28.02.05 18:13

Oder du rufst ProgressBar.Refresh; auf, dann wird es neu gezeichnet.


Larus - Mo 28.02.05 18:18

moment ich versuch es ma... Hab das Problem gehabt bei meiner Viginere Verschlüsselung das ich nie wusste wie weit die ist bei 5 000 000 000 Zeichen... Und hatte ne Auslagerungsdaei von Rund 2.5 GB und 0 MB Ram Frei... aber das is ja nebensache ;)


Larus - Mo 28.02.05 18:24

Jo es geht thx nur muss ich den Application Befehl bei jedem Durchlauf aufrufen also

Delphi-Quelltext
1:
2:
3:
4:
5:
for i:=0 to 100000000 do
  begin
  Application.ProcessMessages;
  ...
  end;


Moderiert von user profile iconraziel: Code- durch Delphi-Tags ersetzt.


F34r0fTh3D4rk - Mo 28.02.05 18:36

du scheinst dich ja im moment sehr intensiv mit verschlüsselungen zu beschäftigen.


Larus - Mo 28.02.05 18:39

Ja! Wieso? Ist das schlimm? Ich will wenn ich fertig bin ein ziemlich kompliziertes Verschlüsselungssystem Coden!


F34r0fTh3D4rk - Mo 28.02.05 18:43

hab vorhin mal was kleines gemacht, deshalb:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
function encode(text: string): string;
var
  i: byte;
  str: string;
begin
  result:= '';
  str:= text;
  for i:= 1 to length(str) do
    result:= result + chr(ord(str[i])+length(str));
end;

function decode(text: string): string;
var
  i: byte;
  str: string;
begin
  result:= '';
  str:= text;
  for i:= 1 to length(str) do
    result:= result + chr(ord(str[i])-length(str));
end;

Ist ganz lustig, wenn man nämlich dem verschlüsselten string noch ein
Zeichen dazugibt, dann isses net mehr so einfach zu knacken :D


Larus - Mo 28.02.05 18:48

Nicht schlecht. Wie nennt man diese sorte von verschlüsselung?


Larus - Mo 28.02.05 18:51

Was hältst du hiervon

Delphi-Quelltext
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:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
procedure TForm1.Sperren;
  Begin
  m_Input.Enabled:=False;
  m_Output.Enabled:=False;
  e_passwort.Enabled:=False;
  b_verschluessel.Enabled:=False;
  b_entschluessel.Enabled:=False;
  End;

procedure TForm1.Freigeben;
  Begin
  m_Input.Enabled:=True;
  m_Output.Enabled:=True;
  e_passwort.Enabled:=True;
  b_verschluessel.Enabled:=True;
  b_entschluessel.Enabled:=True;
  End;

procedure TForm1.b_VerschluesselClick(Sender: TObject);
  var
  b : boolean;
  i, itp : integer;
  sti, sp, sto : string;
  begin
  Sperren;

  sti:=Uppercase(m_Input.Lines.Text);
  sp:=Uppercase(e_Passwort.Text);
  sto:='';
  i:=1;
  While i<= Length(sp) Do
    Begin
    If (Ord(sp[i])<65Or (Ord(sp[i])>91Or (sp[i]=' 'Then
      Delete(sp,i,1)
    Else
      i:=i+1;
    End;

  i:=1;
  While i<=Length(sti) DO
    Begin
    If (sti[i]='ä'Or (sti[i]='Ä'Then
      Begin
      sti[i]:='A';
      Insert('E',sti,i+1);
      End;
    If (sti[i]='ö'Or (sti[i]='Ö'Then
      Begin
      sti[i]:='O';
      Insert('E',sti,i+1);
      End;
    If (sti[i]='ü'Or (sti[i]='Ü'Then
      Begin
      sti[i]:='U';
      Insert('E',sti,i+1);
      End;
    If (sti[i]='ß'Then
      Begin
      sti[i]:='S';
      Insert('S',sti,i+1);
      End;
    i:=i+1;
    End;

  Repeat
  sp:=sp+sp;
  Until Length(sp)>Length(sti);
  Delete(sp,Length(sti)+1,Length(sp)-Length(sti));

  sto:='';
  For i:=1 To Length(sti) Do
    Begin
    b:=False;
    If (Ord(sti[i])<65Or (Ord(sti[i])>91Or (sti[i]=' 'Then
      b:=True;
    If Not B=True Then
      Begin
      itp:=(Ord(sti[i])-65) + (Ord(sp[i])-65);
      If itp > 25 Then
        itp:=itp-26;
      sto:=sto + Chr(itp+65);
      End
    Else
      sto:=sto+sti[i];
    End;
  m_Output.Lines.Text:=sto;
  m_Input.Lines.Text:=sti;
  e_Passwort.Text:=sp;
  Freigeben;
  end;

...
end.

m_... steht für Memo
e_... steht für Edit
und b_...Natürlich für Button

Moderiert von user profile iconGausi: Code- durch Delphi-Tags ersetzt.


F34r0fTh3D4rk - Mo 28.02.05 18:51

Billig-Verschlüsselung-Selbst-Mache kA:

ich taufe sie: Length-Verschlüsselung, falls sie noch net existiert :?

Die Verschlüsselung sieht so schonmal net schlecht aus, werde sie demnächst mal testen

es gibt auch functionen,die beides tun, text codieren, wenn er codiert ist, wenn ers nicht ist, wirds decodiert :D


Larus - Mo 28.02.05 18:58

Wie ist die Adresse von diesem Sourceforg und wie krieg ich da nen Account? Dann lad ich das Prog wenn ich es weiterentwickelt hab in allen Stufen hoch


wulfskin - Mo 28.02.05 19:06

Larus hat folgendes geschrieben:
Wie ist die Adresse von diesem Sourceforg und wie krieg ich da nen Account? Dann lad ich das Prog wenn ich es weiterentwickelt hab in allen Stufen hoch
Diese Faulheit grenzt schon nahezu an Unverschämtheit.

Sourceforge heisst das Ding...


Larus - Mo 28.02.05 19:07

Tschuldige jetzt weiß ich auch arum ich Sourceforge nie gefunden hab :x


Delete - Mo 28.02.05 19:24

Sorry, aber der ganze Thread grenzt schon zum wiederholten Male an komplette Ignoranz. Du postest ohne dich vorher mal ein Stück informiert zu haben (Google oder Forensuche). Denk bitte nächstes mal vor dem Abschicken daran. :wink:


Larus - Di 01.03.05 17:21

Werd ich machen :lol: nur meinst du nicht das du mir das auch so per ICQ sagen kannst ohne mich so offensichtlich vor den anderen aufzuziehen??? :? :wink: Übrigens werd ich den obengezeigten Code noch etwas umschreiben


Delete - Di 01.03.05 17:38

Ich wollte dich nur darauf hinweisen. :) Wusste nicht, dass ich dir das über Icq mitteilen muss, nur weil du deine Nummer angegeben hast :P


Larus - Fr 04.03.05 11:13

ich dachte ich hab dich in meiner userliste und du mich :wink: aber müssen tust du es nicht


Delete - Fr 04.03.05 11:17

ja jetzt schon und jetzt ist schluss mit ot 8)


Larus - Fr 04.03.05 11:30

ot??? :lol:

Edit... hasse keine Schule :D
edit2... Und ich hab gelernt erstma bei google nachzugucken bevor ich nachfrage 8)


Larus - Sa 05.03.05 10:49

Übrigens such ma unter http://www.google.de/search?hl=de&q=ot&meta= da findest du ungefähr 11.200.000 für ot. :lol: