Einzelnen Beitrag anzeigen

-Lucky-

Registriert seit: 4. Mai 2008
28 Beiträge
 
Delphi 7 Enterprise
 
#22

Re: Schneller Code - Von Delete und Insert -> Copy ->

  Alt 7. Mai 2008, 13:00
Zitat:
zu deinem patent (a) gibts hier in europa keine softwarepatente
Wie jetzt? Dann kann ich mir das also sparen... mhh...

Theoretisch könnte ich den Algorithmus ja dann doch ins Forum schreiben. Ich werd drüber nachdenken.

Was das copy angeht:

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var text1,text2: string;
i,x: integer;
begin
  text1 := FileToString('abc.xyz'); // datei hat nix zu sagen, dient als temp. Datenquelle
  x := length(text1);
  ShowMessage('Messung starten');
  for i := 1 to 1000 do
  begin
     text2 := copy(text1,20000,500000 - 19999) + copy(text1,1,19999) + copy(text1,500001,x - 500000);
  end;
  ShowMessage('Fertig');
end;
Dauer: 37 Sekunden


Delphi-Quellcode:
procedure TForm1.Button5Click(Sender: TObject);
var text1,text2: string;
i,x: integer;
begin
  text1 := FileToString('abc.xyz'); // datei hat nix zu sagen, dient als temp. Datenquelle
  x := length(text1);
  ShowMessage('Messung starten');
  for i := 1 to 1000 do
  begin
    SetLength(text2, x); // Speicher reservieren
    Move(text1[20000], text2[1], 500000 - 19999);
    Move(text1[1], text2[500001 - 20000], 19999);
    Move(text1[500001],text2[500001], x - 500001);
  end;
  ShowMessage('Fertig');
end;
Dauer: 11 Sekunden


Delphi-Quellcode:
procedure TForm1.Button7Click(Sender: TObject);
var text1,text2: string;
i,x: integer;
begin
  text1 := FileToString('abc.xyz'); // datei hat nix zu sagen, dient als temp. Datenquelle
  x := length(text1);
  ShowMessage('Messung starten');
  for i := 1 to 1000 do
  begin
    SetLength(text2, x); // Speicher reservieren
    text2 := copy(text1,20000,500000 - 19999) + copy(text1,1,19999) + copy(text1,500001,length(text1) - 500000);
    SetLength(text2, x);
    MoveMemory(@text2[1], @text1[20000], 500000 - 19999);
    MoveMemory(@text2[500000 -19999 + 1], @text1[1], 19999);
    MoveMemory(@text2[500001], @text1[500001], x-500001);
  end;
  ShowMessage('Fertig');
end;
Dauer: 47 Sekunden


Damit wäre diese Frage auch beantwortet. Mit Move kann man die Meiste Zeit einsparen, dann geht das ganze 3 mal so schnell

Werd dies auch auf alle anderen Stellen übertragen, wo Zeichenketten zusammengefügt werden. Wieder etwas neues dazu gelernt

Aber eine Frage habe ich jetzt noch:

Wenn ich hier in Deutschland dieses Programm nun kostenlos zur Verfügung stelle, könnte ich dann von den anderen Ländern aus Ärger bekommen? Es liegt ja nahe, dass auch in diesen Ländern das Programm genutzt werden "könnte". Oder ist dann der Anwender schuld, der es benutzt?

Ich bin gerade dabei das Programm ins Englische zu übersetzen. Kann ich da Probleme bekommen wenn ich das Online stelle, und auch Englisch unterstützt wird? Weil damit fördere ich ja quasi die Verbreitung auf den anderen Kontinenten. Kennt sich da jemand aus?


Zitat:
PS: such mal im Forum nach Beiträgen des Users "negah" (Hagen) ... ist einer der größten Verschlüsselungsexperten ... also gibt's viel guten Stoff zum lesen,
aber nach den Beschreibungen hier, würd ich jetzt einfach mal vermuten, daß er deinen Algo in der Luft zerreißt und dirleicht beweißt, daß er unsicher ist ... sind halt, selbst wenn in guter und sicherer Kern dahinterstecken könnte, zuviele Schwachstellen drin, welche das Ganze wieder insgesammt unsicher machen.
Ich werde mich mit ihm in Kontakt setzen, das wäre schon krass wenn es da ne Schwachstelle gibt, denn ich habe keine Hintertüren eingebaut, es wird noch nicht mal erkannt, ob das Passwort richtig ist, also kein Rückgabewert geliefert. Naja, mal schauen.
  Mit Zitat antworten Zitat