![]() |
Hilfe:Caesar-Verfahren
Hallo Leute,
ich muss bis Donnerstag, den 13.01.2005, ein Projekt abgeben. Ich soll mit Delphi einen Text im CAESAR-VERFAHREN verschlüsseln. Ich habe auch einen Quelltext gefunden, der aber für meine Verhältnisse zu schwer ist. Ich würde mich über eine Antwort mit einem LEICHTEREN QUELLTEXT freuen oder über eine ERKLÄRUNG MEINES QUELLTEXTES, da ich ihn inner Schule erklären muß. Ich bin sonst aufgeschmissen. BITTE UM HILFE!!! Das ist mein Quelltext:
Delphi-Quellcode:
[edit=r_kerber]Doppelpost gelöscht. Delphi-Tags eingefügt (das nächste mal bitte selbst machen)! Mfg, r_kerber[/edit]
IF Memo1.Lines.Count > 0 THEN
begin FOR ZNr:= 1 TO Memo1.Lines.Count DO begin ZOrgText:= Memo1.Lines[ZNr - 1]; // IF length(ZOrgText) > 0 THEN begin ZVerschlText:= ''; // FOR BNr:= 1 TO length(ZOrgText) DO begin OrgReih:= Ord(ZOrgText[BNr]); // NeuReih:= OrgReih + SpinEdit1.Value; // ZVerschlText:= ZVerschlText + Chr(NeuReih); // end; Memo2.Lines.Add(ZVerschlText); // end ELSE Memo2.Lines.Add('') // end end; |
Re: Hilfe:Caesar-Verfahren
Ich denke doch, ein Thread reicht für dein "Problem".. :roll:
|
Re: Hilfe:Caesar-Verfahren
Hey Dax,
ich bin leider Anfänger, was meinst denn du? Kannste mir das ausführlich aufschreiben? |
Re: Hilfe:Caesar-Verfahren
Fertige Projekte oder Quelltexte wird es hier nicht geben.
Dein Quelltext veschlüsselt alle Zeilen in einem Memo. Du solltest dir erstmal eine Funktion schreiben, die dir einen übergebenen String um eine auch übergebene Anzahl von Stellen verschiebt. Um die Buchstaben in Zahlen zu verwandeln, werden dir die Befehle ![]() // EIn Tipp: Um aus einem Buchtstaben eine Zahl zwischen 0 und 25 zu machen kannst du diesen Code benutzen;
Delphi-Quellcode:
Dadurch, dass du ord('A') abziehst, bekommt das A die 1 und nicht den normalen Ascii-Wert von 80 oder so.
NR:= ord(Buchstabe)-ord('A');
|
Re: Hilfe:Caesar-Verfahren
Soll heißen, es genügt, wenn Du Deine Frage einmal stellst! Habe eben drei Deiner weiteren Anfragen gelöscht!
|
Re: Hilfe:Caesar-Verfahren
Delphi-Quellcode:
Ich hab' mal versucht es einfach auszudrücken.
IF Memo1.Lines.Count > 0 THEN
begin FOR ZNr:= 1 TO Memo1.Lines.Count DO begin ZOrgText:= Memo1.Lines[ZNr - 1]; //Auslesen des Textes der in der Zeile (ZNr - 1) steht (Im Memo ist die 1. Zeile immer mit der 0 Gek.) IF length(ZOrgText) > 0 THEN begin ZVerschlText:= ''; //Leeren des Strings, da es ja mehrere Durchläufe sind FOR BNr:= 1 TO length(ZOrgText) DO begin OrgReih:= Ord(ZOrgText[BNr]); //Umwandeln von Text in ASCII NeuReih:= OrgReih + SpinEdit1.Value; // ??? ZVerschlText:= ZVerschlText + Chr(NeuReih); //Umwandeln von ASCII IN Text end; Memo2.Lines.Add(ZVerschlText); //Inzufügen des oben erm. textes end ELSE Memo2.Lines.Add('') //Ist die akt. Zeile leer dann wird aich eine leere hinzugef. end; end; |
Re: Hilfe:Caesar-Verfahren
Könntet ihr denn vielleicht die wichtigsten Zeilen in meinem Quelltext erklären, damit ich es dann verstehe?
Und wie komme ich mit dem vorhanden Quelltext nur in den Bereich der Buchstaben? So komme ich nämlich auch in die Sonderzeichen, das wollte ich aber net. |
Re: Hilfe:Caesar-Verfahren
was heißen denn speziell die ersten Zeieln, der Anfang wird wohl wichtig sein.
|
Re: Hilfe:Caesar-Verfahren
Zitat:
Und pushen nach drei Minuten ist hier nicht gern gesehen (genauswenig wie Mehrfachposting)! |
Re: Hilfe:Caesar-Verfahren
Zitat:
zuerst mal herzlich willkommen im Delphi Praxis Forum. Ein paar Punkte dind mit bei Deinem 1. Beitrag aufgefallen:
Da Du das bestimmt nicht mit Absicht gemacht hast, gebe ich Dir hier ein paar Tips und Hinweise (keine Lösung) Was ist die Caesar Verschlüsselung? Jeder Buchstabe wird um 3 Buchstaben verschoben. Aus A wird D, aus B wird E, ... Das könnte man z.B. so lösen:
Delphi-Quellcode:
Mit s[2] greift man auf den 2. Buchstaben von der Zeichenkette s zu. (s[3] ist der 3. Buchstabe usw)
var
s: string; ... begin s := 'Das ist ein Test.' ... s[2] = Chr( Ord(s[2]) + 3); ... Ord( Buchstabe ) wandelt einen Buchstaben in den Ascii Wert um (Byte von 0 bis 255) Chr( Ascii Wert ) wandelt einen Ascii Wert in einen Buchstaben um (Char) Ein erfahrener Delphi Programmierer würde einen Anderen Befehl benutzen:
Delphi-Quellcode:
Damit wird der Ascii Wert auch um 3 Zeichen verschoben.
...
inc(s[i], 3); ... Zum Entschlüsseln verwendet man folgendes:
Delphi-Quellcode:
Mit Length(s) bekommt man die Länge des Strings.
...
s[2] = Chr( Ord(s[2]) - 3); // oder dec(s[i], 2); ... Also braucht man nur noch eine Schleife zu bauen vom 1. bis zum letztem Buchstaben und für jeden Buchstaben diese Verschlüsselung anwenden. Mach Dir auch ein paar Gedanken zu den Buchstaben X, Y und Z. Diese können nicht durch einfaches Addieren einer 3 verschlüsselt werden, da 'X' + 3 nicht A ergibt, sondern ein Sonderzeichen. So, nun müsstest Du aber selbst zurecht kommen. Viel Spaß |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:54 Uhr. |
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