AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Mit einer kurzen Prozdur einen Schlüssel erzeugen
Thema durchsuchen
Ansicht
Themen-Optionen

Mit einer kurzen Prozdur einen Schlüssel erzeugen

Ein Thema von kurtm1 · begonnen am 25. Apr 2004 · letzter Beitrag vom 26. Apr 2004
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#11

Re: Mit einer kurzen Prozdur einen Schlüssel erzeugen

  Alt 26. Apr 2004, 13:45
Oder so:

Delphi-Quellcode:
function TForm1.Button1Click(Sender: TObject) : String;
var
  myString1,
  myString2 : String;
  rand,
  ndx : Integer;
begin
  for ndx := 1 to 26 do
  begin
    myString1 := myString1+ Char(ndx+64);
  end;
  ndx := 0;
  While (Length (myString1) > 0) do
  begin
    rand := random(Length(myString1))+1;
    myString2 := myString2 + Copy (myString1,rand,1);
    Delete (myString1,rand,1)
  end;
  result := myString2;
end;
Ungetestet, darum auch nicht optimiert
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von fiasko
fiasko

Registriert seit: 10. Dez 2002
Ort: Dresden
506 Beiträge
 
#12

Re: Mit einer kurzen Prozdur einen Schlüssel erzeugen

  Alt 26. Apr 2004, 13:48
Der Ansatz kommt mir bekannt vor... 8)
Thomas Liske
Posts comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#13

Re: Mit einer kurzen Prozdur einen Schlüssel erzeugen

  Alt 26. Apr 2004, 13:51
Zitat von fiasko:
Der Ansatz kommt mir bekannt vor... 8)
Das kommt davon wenn man zwichen dem Tippen und dem Absenden ans Telefon muss
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#14

Re: Mit einer kurzen Prozdur einen Schlüssel erzeugen

  Alt 26. Apr 2004, 14:03
Delphi-Quellcode:
function Code: string;
const
  s: string = 'abcdefghijklmnopqrstuvwxyz';
var
  i,j: Integer;
begin
  randomize;
  result:='';
  for i:=1 to 25 do
  begin
    j:=random(length(s)+1);
    result:=result+s[j];
    delete(s,j,1);
  end;
  result:=result+s;
end;
der code ist ineffizient und zudem falsch. S ist eine Konstante die mit delete(s, j, 1) modifiziert wird. Beim nächsten Aufruf dieser Funktion wurde also S vorher schon modifiziert.
Ineffizient ist er weil er mit result := result + s[J], 26 realozierungen des Strings benötigt.
Randomize sollte auf nur EINMAL im Program aufgerufen werden.

Delphi-Quellcode:
function Code: String;
const
  Table: String = 'abcdefghijklmnopqrstuvwxyz';
var
  I,J: Integer;
  Temp: Char;
begin
  Result := Table;
  for I := 1 to Length(Table) do
  begin
    J := Random(Length(Table)) +1;
    Temp := Result[J];
    Result[J] := Result[I];
    Result[I] := Temp;
  end;
end;
Gruß Hagen
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#15

Re: Mit einer kurzen Prozdur einen Schlüssel erzeugen

  Alt 26. Apr 2004, 14:08
Zitat von negaH:
...Ineffizient ist er weil er mit result := result + s[J], 26 realozierungen des Strings benötigt....
Wusste ich doch das Hagen das mal irgendwo geschrieben hat. Darum verwende ich in einer Funktion immer temp_Variablen und setze Result ganz am ende der Funktion.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#16

Re: Mit einer kurzen Prozdur einen Schlüssel erzeugen

  Alt 26. Apr 2004, 14:17
Irgendwie versteh ich nicht wieso bei dem source jedes zeichen nur einmal vorkommt. Also ich zweifel is ni an (habs auch zig mal probiert) aber wie wird das sichergestellt? kannste den source mal erklären - irgendwie begreif ich den zu so früher stunde ni
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#17

Re: Mit einer kurzen Prozdur einen Schlüssel erzeugen

  Alt 26. Apr 2004, 14:27
Zitat von SirThornberry:
... kannste den source mal erklären ...
Wenn meinst Du denn?
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#18

Re: Mit einer kurzen Prozdur einen Schlüssel erzeugen

  Alt 26. Apr 2004, 14:28
eigentlich ist mir egal wer den source erklärt solange der source von Hagen (Negah) erklärt wird
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#19

Re: Mit einer kurzen Prozdur einen Schlüssel erzeugen

  Alt 26. Apr 2004, 14:34
Wenn ich den Code richtig verstehe macht Hagen es so das er einmal den sortierten String hat.
Dann durchläuft er diesen von 1 bis 26 und ersetzt jedes Zeichen durch ein Zufällig ausgewähltes des gleichen Strings.

Grob gesagt: Er sorgt dafür das der Sring nicht mehr sortiert ist.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#20

Re: Mit einer kurzen Prozdur einen Schlüssel erzeugen

  Alt 26. Apr 2004, 14:44
so weit bin ich auch mitgekommen. Aber wo/wie wird sichergestellt das, das zeichen nicht schon vorhanden ist...
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz