Autor |
Beitrag |
pbczero
Hält's aus hier
Beiträge: 15
WIN 2000
Delphi 7
|
Verfasst: Sa 28.05.05 14:29
Hallo, ich möchte gerne mit hilfe eines schlüsselwortes ein alphabet erstellen, damit man dann nachher die buchstaben des normalen alphabets mit dem entsprechenden des generierten vertauschen kann.
leider klappt es noch nicht so richtig.ich wollte das alphabet erstmal in eine listbox schreiben, um es zu überprüfen.
es soll z.b. bei dem wort "ern" das alphabet
e r n a b c d f....usw. entstehen, d.h. nach dem verschlüsselungswort soll das alphabet drangehängt werden, die schon verwendeten buchstaben jedoch ausgelassen.
folgendes habe ich versucht:
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:
| For a:=1 to length(edit1.text) do
begin Code[a]:=edit1.text[a]; end;
z:=false; f:=length(edit1.text)+1; For c:=ORD('a') to ORD('z') do begin For b:=1 to length(Code) do begin If c=ORD(Code[b]) then z:=true; end;
If z=false then begin Code[f]:=CHR(c); f:=f+1; end; end;
For k:=1 to 26 do listbox1.items.add(Code[k]); end; |
kann mir jemand einen tipp geben, wo der fehler liegt???
|
|
AXMD
      
Beiträge: 4006
Erhaltene Danke: 7
Windows 10 64 bit
C# (Visual Studio 2019 Express)
|
Verfasst: Sa 28.05.05 14:51
Kannst du mir einen Tipp geben, wozu das gut sein soll? Bei 3 Buchstaben hast du fast 800% Redundanz - und das zu entschlüsseln dürfte wohl in nichtmal 10 Sekunden möglich sein. Stürz dich lieber auf Caesar oder Viginère - die sind um einiges sicherer und effeizienter als dein "Algorithmus"
AXMD
|
|
pbczero 
Hält's aus hier
Beiträge: 15
WIN 2000
Delphi 7
|
Verfasst: Sa 28.05.05 15:01
ja ich kann dir nen tipp geben....ist auch einer der leicht zu verstehen ist
Ich fände auch eine andere Methode besser
ABER
der lehrer sitzt nunmal am längeren Hebel...und wenn er es so haben will...tja was soll ich sagen, dann muss ichs halt so machen...und ich weiß auch, dass ich ein noob im programmieren bin....aber immerhin glaub ich, dass der ansatz eigentlich funktionieren müsste
|
|
majolo
      
Beiträge: 334
Ubuntu 8.04, WinXP Prof.
D1, D6Pers, D7 Prof., D8 Prof., D2005 Pers
|
Verfasst: Sa 28.05.05 15:05
Schau dir doch mal den RSA-Algorithmus an. Der verschlüsselt recht sicher.
www.thg.aa.bw.schule.de/Notizbuch/rsa/ oder einfach mal googeln.
_________________ Gruß
majolo
|
|
Fabian W.
      
Beiträge: 1766
Win 7
D7 PE
|
Verfasst: Sa 28.05.05 15:07
Das dürfte ungefähr das sein was du suchst:
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:
| const original = ' ABCDEFGHIJKLMNOPQRSTUVWXYZ'+ 'abcdefghijklmnopqrstuvwxyzÄÖÜäöüß'; schluessel = 'MKrLcDXSfghäUöHVWjIZlNYvÄdx' + 'an qsoPbAEBTFÖCyzükÜGmOßJweQRiptu';
procedure Tform1.Button1Click(Sender: TObject); var Eingabe, Ausgabe : String; x,laenge,position : integer; begin Eingabe := Memo1.Text; Ausgabe := ''; laenge := Length(Eingabe); for x:= 1 to laenge do begin position := Pos(Eingabe[x],original); if position <> 0 then Ausgabe := Ausgabe + schluessel[position] else Ausgabe := Ausgabe + Eingabe[x]; end; Memo2.Text := Ausgabe; end; |
Alles was du jetzt noch machen musst, is aus der Const ne Variable zu machen, und die bei jedem neuen wort nach deinen Wünschen umformen.
|
|
AXMD
      
Beiträge: 4006
Erhaltene Danke: 7
Windows 10 64 bit
C# (Visual Studio 2019 Express)
|
Verfasst: Sa 28.05.05 15:09
Gut, von mir aus, aber den Code wird sich niemand ansehen, wenn er so formatiert ist wie jetzt und keine Kommentare hat. Ich hätte das so gelöst:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| var s: String; i: Integer; text: set of Char; begin s := UpperCase(Edit1.Text); text := []; for i := 1 to Length(s) do text := text + [s[i]];
for i := Ord('A') to Ord('Z') do begin if not(Chr(i) in text) then s := s + Chr(i); end;
Edit2.Text := s; end; |
AXMD
Zuletzt bearbeitet von AXMD am Sa 28.05.05 15:31, insgesamt 1-mal bearbeitet
|
|
pbczero 
Hält's aus hier
Beiträge: 15
WIN 2000
Delphi 7
|
Verfasst: Sa 28.05.05 15:20
ist irgendwie logisch, aber wenn ich das proggi damit starte erhalte ich als Code:
ERNBDGIKLOSTUWXYZ
und da feht doch die Hälfte...
|
|
AXMD
      
Beiträge: 4006
Erhaltene Danke: 7
Windows 10 64 bit
C# (Visual Studio 2019 Express)
|
Verfasst: Sa 28.05.05 15:30
|
|
pbczero 
Hält's aus hier
Beiträge: 15
WIN 2000
Delphi 7
|
Verfasst: Sa 28.05.05 15:46
|
|
AXMD
      
Beiträge: 4006
Erhaltene Danke: 7
Windows 10 64 bit
C# (Visual Studio 2019 Express)
|
Verfasst: Sa 28.05.05 15:48
Hab im oberen Quelltext eine Zeile hinzugefügt. Probier's mal so.
AXMD
|
|
pbczero 
Hält's aus hier
Beiträge: 15
WIN 2000
Delphi 7
|
Verfasst: Sa 28.05.05 16:21
danke!!!, nun klappt es....damit werd ich dann wohl meinen lehrer zufriedenstellen...also wenns fertig ist
|
|
AXMD
      
Beiträge: 4006
Erhaltene Danke: 7
Windows 10 64 bit
C# (Visual Studio 2019 Express)
|
Verfasst: Sa 28.05.05 16:26
pbczero hat folgendes geschrieben: | danke!!!, nun klappt es....damit werd ich dann wohl meinen lehrer zufriedenstellen...also wenns fertig ist |
Du solltest es aber verstehen und nicht nur kopieren. Deshalb frag lieber, wenn du Fragen hast. Weil wenn dein Lehrer dahinterkommt, dass du das nicht verstehst, sondern nur kopiert hast, sieht's schlecht um deine Note aus.
AXMD
|
|