![]() |
Ich verstehe eine kleine Sache bei einer Funktion nicht..
Hallo leute,
ich habe hier eine Funktion, die ich leider nicht richtig verstehe :oops: , vielleicht könnt ihr mir kurz helfen:
Delphi-Quellcode:
Diese Funktion brauche ich für einen Verschlüsselungsprogramm(genauer gesagt für Vigenere). Ich verstehe den letzten Teil nicht...
procedure TVigenere.SetSecretText(aSecretText: String);
var I: Integer; begin //SecretText formatieren aSecretText := StringReplace(aSecretText, 'Ä', 'AE', [rfReplaceAll]); aSecretText := StringReplace(aSecretText, 'ä', 'AE', [rfReplaceAll]); aSecretText := StringReplace(aSecretText, 'Ö', 'OE', [rfReplaceAll]); aSecretText := StringReplace(aSecretText, 'ö', 'OE', [rfReplaceAll]); aSecretText := StringReplace(aSecretText, 'Ü', 'UE', [rfReplaceAll]); aSecretText := StringReplace(aSecretText, 'ü', 'UE', [rfReplaceAll]); aSecretText := StringReplace(aSecretText, 'ß', 'SS', [rfReplaceAll]); For I := 1 to 255 do If ((I < 65) or (I > 90)) and ((I < 97) or (I > 122)) then aSecretText := StringReplace(aSecretText, Chr(I), '', [rfReplaceAll]); For I := 97 to 122 do aSecretText := StringReplace(aSecretText, Chr(I), Chr(I-32), [rfReplaceAll]); SecretText := aSecretText; end;
Delphi-Quellcode:
Was bewirkt das Charakter dort? und wieso in der zweiten Schleife -32 ?
For I := 1 to 255 do
If ((I < 65) or (I > 90)) and ((I < 97) or (I > 122)) then aSecretText := StringReplace(aSecretText, Chr(I), '', [rfReplaceAll]); For I := 97 to 122 do aSecretText := StringReplace(aSecretText, Chr(I), Chr(I-32), [rfReplaceAll]); SecretText := aSecretText; Vielen Dank |
Re: Ich verstehe eine kleine Sache bei einer Funktion nicht.
![]()
Delphi-Quellcode:
Die erste for Schleife durchläuft den Zeichenbereich von 1 bis 255 der Ascii-Tabelle.
For I := 1 to 255 do
If ((I < 65) or (I > 90)) and ((I < 97) or (I > 122)) then aSecretText := StringReplace(aSecretText, Chr(I), '', [rfReplaceAll]); For I := 97 to 122 do aSecretText := StringReplace(aSecretText, Chr(I), Chr(I-32), [rfReplaceAll]); SecretText := aSecretText; Ist ein Zeichen dann nicht im Bereich von 'A'..'Z' und 'a'..'z' wird das Zeichen im Text durch '' ersetzt. Die zweite Schleife ersetzt jeden kleinen Buchstaben des Textes durch den entsprechenden Großbuchstaben. 'a' (97) -> 'A' (65 = 97-32). Grüße Klaus |
Re: Ich verstehe eine kleine Sache bei einer Funktion nicht.
-32 wandelt wohl zu kleinbuchstaben wenn ich nicht irre. und chr ist das gleiche wie ein cast auf char. String Replace erwartet Strings bzw. Chars. Die Schleife läuft auch alle benötigten durch wobei der Schleifenzähler natürlich ein ordinalwert sein muss. Damit StringReplace damit aber klar kommt muss man explizit sagen das es als char zu interpretieren ist.
|
DP-Maintenance
Dieses Thema wurde von "SirThornberry" von "Sonstige Fragen zu Delphi" nach "Object-Pascal / Delphi-Language" verschoben.
|
Re: Ich verstehe eine kleine Sache bei einer Funktion nicht.
danke schön :)
:dp: |
Re: Ich verstehe eine kleine Sache bei einer Funktion nicht.
Zitat:
Gute Nacht. Klaus |
Re: Ich verstehe eine kleine Sache bei einer Funktion nicht.
LOL! Kujin ... immer den Coder angeben ;) Hättest auch gleich mich am Telefon fragen können. :D
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:57 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