Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi 676 zufällige Schlüssel zuweisen (https://www.delphipraxis.net/104517-676-zufaellige-schluessel-zuweisen.html)

DeddyH 5. Dez 2007 17:02

Re: 676 zufällige Schlüssel zuweisen
 
Für zusammenhängende Buchstabenpaare bietet sich ein Record an in der Art
Delphi-Quellcode:
type TKeyPair = record
  plain,
  crypted: string[2];
end;
Wie man sich wohl denken kann, kommt das Ursprungspaar in das Feld plain und die verschlüsselte Variante in das Feld crypted.

Informatik-LK 5. Dez 2007 17:23

Re: 676 zufällige Schlüssel zuweisen
 
Hallo rollstuhlfahrer,

deine Idee ist zum Erstellen der Liste oder?

DeddyH, ich weiß nicht so recht, was ich mit deinem Beitrag anfangen soll... sorry.

himitsu 5. Dez 2007 17:28

Re: 676 zufällige Schlüssel zuweisen
 
@DeddyH: unnötiger Speicherverbrauch

Delphi-Quellcode:
Var Liste: Array['A'..'Z', 'A'..'Z'] of String[2];
// oder
Var Liste: Array['A'..'Z'] of Array['A'..'Z'] of String[2];
Zugriff dann per etwas davon
Delphi-Quellcode:
Liste['A', 'Z'] = Feld AZ = Liste['A']['Z']

oder auch
Delphi-Quellcode:
Var Liste: Array['A'..'Z'] of Array['A'..'Z'] of Array[0..2] of Char;

Var Liste: Array['A'..'Z'] of Array['A'..'Z'] of Record
  c1, c2: Char;
End;
oder
...

DeddyH 5. Dez 2007 17:44

Re: 676 zufällige Schlüssel zuweisen
 
Hab ich da was falsch verstanden? Ich dachte, jeder Buchstabenkombination soll eine andere zugewiesen werden (z.B. AA -> BG).

Informatik-LK 5. Dez 2007 17:55

Re: 676 zufällige Schlüssel zuweisen
 
Soll eigentlich auch so sein. Wenn ich rollstuhlfahrer's Idee nehme, dann wird AA anscheinend 91 zugewiesen...

Informatik-LK 5. Dez 2007 18:37

Re: 676 zufällige Schlüssel zuweisen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe gerade noch eine Idee: Schaut euch erstmal meine Form an (beachtet nur die StringGrids). Wenn das Programm gestartet wird, stehen ja bei den StringGrids jeweils in der nullten Spalte die 676 Buchstabenpaare.
Nun habe ich mir einfach gedacht, wenn ich den Button "Schlüssel" klicke, bekommen die Zellen aus der ersten Spalte des linken StringGrids (also die Spalte neben den Buchstabenpaaren) durch Zufall den Inhalt der nullten Spalte des rechten StringGrids.

Ich wollte es in etwa so umsetzen:

Delphi-Quellcode:
Procedure ButtonKeysClick(Sender: TObject);
var i: longint;
begin
  for i := 0 to 675 do
  StringGrid1.Cells[1,i] := {Inhalt der zufällig ausgewählten Zellen im rechten StringGrid der Spalte 0}
end;
Habt ihr eine Ahnung, was ich in die geschweiften Klammern schreiben müsste? Ich habe nämlich schon so einige Sachen ausprobiert, aber es hat alles nicht funktioniert.

Gruß

himitsu 5. Dez 2007 19:31

Re: 676 zufällige Schlüssel zuweisen
 
ich glaub Rollstuhlfahrers Code könnte Funktionieren (sieht jedenfalls für mich so aus).

Delphi-Quellcode:
Var C1, C2, C3, C4: Char;
  S: String[2];
  Liste: Array['A'..'Z', 'A'..'Z'] of String[2];
  i, i2, i3: Integer;

// Liste zuweisen
For C1 := 'A' to 'Z' do
  For C2 := 'A' to 'Z' do
    Liste[C1, C2] := C1 + C2;

// Liste mischen
For i := 0 to 10 do
  For C1 := 'A' to 'Z' do
    Liste[C1, Char(Ord('A') + Random(26))] :=
      Liste[Char(Ord('A') + Random(26)), Char(Ord('A') + Random(26))];

// oder Liste mischen
For i := 0 to 10000 do Begin
  C1 := Char(Ord('A') + Random(26));
  C2 := Char(Ord('A') + Random(26));
  C3 := Char(Ord('A') + Random(26));
  C4 := Char(Ord('A') + Random(26));
  S := Liste[C1, C2];
  Liste[C1, C2] := Liste[C3, C4];
  Liste[C3, C4] := S;
End;

Informatik-LK 5. Dez 2007 19:41

Re: 676 zufällige Schlüssel zuweisen
 
Vielen Dank. Ich werde es probieren. :)

Eine kurze Frage noch: Von welchem Typ ist die Variable S ?

himitsu 5. Dez 2007 19:56

Re: 676 zufällige Schlüssel zuweisen
 
nja, da du 2 Bchstaben hast ... also String

String,
String[2]
oder Array[0..1] of Char


hab die Variablendefinitionen oben nachgetragen

Informatik-LK 5. Dez 2007 20:39

Re: 676 zufällige Schlüssel zuweisen
 
Ok, und was genau ist jetzt zu tun, um die Ergebnisse ins StringGrid zu übertragen?


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:28 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz