AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Eigene kleine Verschlüsslung
Thema durchsuchen
Ansicht
Themen-Optionen

Eigene kleine Verschlüsslung

Ein Thema von Premaider · begonnen am 24. Jun 2012 · letzter Beitrag vom 24. Jun 2012
Antwort Antwort
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#1

AW: Eigene kleine Verschlüsslung

  Alt 24. Jun 2012, 13:37
Delphi-Quellcode:
      For h := 1 to j do
      If (Text2<>'Z') and (Text2[h]<>'z') Then Text2:=Text2 + Chr(Ord(Text1[i])+1) Else
      If Text2[h]='ZThen Text2[h]:='A';
      If Text2[h]='zThen Text2[h]:='a';
Fehlerhafte Stelle! Hättest du richtig eingerück, wärs dir sofort aufgefallen...
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.584 Beiträge
 
Delphi 12 Athens
 
#2

AW: Eigene kleine Verschlüsslung

  Alt 24. Jun 2012, 13:57
TEdit.Text ist ein Property.
Property kann man entweder nur komplett auslesen oder beschreiben.
(nur Objekte sind indirekt eine Ausnahme, wobei das eigentlich Zeiger sind und auch hier der Zeiger nur koplett befüllt werden kann, aber das referenzierte Objekt natürlich eigenständig ist)

Edit2.Text[h] liest praktisch das Property i eine temporäre Stringvariable aus und [h] graift dann auf ein Zeichen in der Kopie zu.

Lösung: Vorher .Text in eine eigene Stringvariable auslesen/kopieren, dort bearbeiten und dann am Ende komplett zurückschreiben.


Bei Edit2.Text[h] geben sogar uralte Delphis eine Fehlermeldung zurück, so wie du es bekommen hast, denn ein Teil-Property ist eben nicht beschreibbar.
Bei Records, als Property gab es lange Zeit ein Problem, wo der Compiler früher keine Fehlermeldung ausgab und den Schreibzugriff auf die Kopie ohne Fehlermeldung zuließ, nur daß diese Änderungen eben nie im Property angekommen sind. (das hat man inzwüschen zum Glück behoben)

PS: viele gleiche IFs = ein CASE
Wobei ja schon angemerkt wurde, daß es hier eine regelmäßige Gesetzmäßigkeit gibt, welche man mathematisch ausnutzen kann.
Aber das die Groß- und Kleinbuchstaben ordinal nicht direkt zusamenhängen, womit man es nicht zusammenhängend berechnen kann.
Ein CASE über die 4 Teilbereichen ("A" bis "Y", "Z", "a" bis "y" und "z") unterteilen und jeweils eine Berechnugn dafür.

Zitat:
If Edit2.text[h]='zThen Edit2.text[h]:='a';
Sicher daß du ein kleines A meinst?
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (24. Jun 2012 um 14:04 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.029 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Eigene kleine Verschlüsslung

  Alt 24. Jun 2012, 19:50
... ich mach mal eine Ausnahme

Delphi-Quellcode:
function Encrypt(const AString: String): String;
var i : integer;
begin
  Result := '';
  for i := 1 to Length(AString) do begin
    if UpperCase(AString[i]) <> 'Zthen
      Result := Result + Chr(Ord(AString[i])+1)
    else
      if AString[i] = 'Zthen
        Result := Result + 'A'
      else
        Result := Result + 'a';
  end; // for
end;
Michael Kübler
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.584 Beiträge
 
Delphi 12 Athens
 
#4

AW: Eigene kleine Verschlüsslung

  Alt 24. Jun 2012, 22:02
Aber bezüglich dem "Eigene":
http://de.wikipedia.org/wiki/Caesar-...l%C3%BCsselung
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Antwort Antwort


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 19:07 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