Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi buchstaben-verschiebung optimieren... (https://www.delphipraxis.net/67598-buchstaben-verschiebung-optimieren.html)

heiopei 17. Apr 2006 16:00

Re: buchstaben-verschiebung optimieren...
 
hallo,
@faux:
sorry, ich hab im nachhinein den namen "Xor_Letter" in "Shift_Letter" umbenannt und nicht im Quellcode angepasst - mein fehler :oops:

@basilikum:

dein code stimmt fast - nur zwei klammern warn zuviel:

Delphi-Quellcode:
Function Shift_Letter(Letter: Char): Char;
Begin
  Case Letter Of
    'A'..'Z' : Result:=Chr( ([color=#ff0000]([/color](Ord(Letter) - Ord('A') + (26 - Shifter)) mod 26) + Ord('A') );
    'a'..'z' : Result:=Chr( ([color=#ff0000]([/color](Ord(Letter) - Ord('a') + (26 - Shifter)) mod 26) + Ord('a') );
    Else Result:=Letter;
  end;
end;
ohne die klammern hat die funktion bei mir die gleichen ergebnissse geliefert :thumb:

Hawkeye219 17. Apr 2006 16:10

Re: buchstaben-verschiebung optimieren...
 
Wie wäre es damit:

Delphi-Quellcode:
function Shift_Letter (ALetter: Char): Char;
begin
  case ALetter of
    'A'..'M', 'a'..'m' : Inc (ALetter, 13);
    'N'..'Z', 'n'..'z' : Dec (ALetter, 13);
  end;
  Result := ALetter;
end;
Gruß Hawkeye

SirThornberry 17. Apr 2006 16:14

Re: buchstaben-verschiebung optimieren...
 
@faux: Ich hatte getippt das "ord" langsamer ist weil es eben eine Funktion ist (somit zeug auf Stack ablegen etc.). Ein Cast hingegen ist kein Funktionsaufruf sondern einfach nur eine Art Compileranweisung. Da aber bei Ord die Compilermagic zum Zuge kommt, scheint ord also nicht als Funktion kompiliert zu werden sondern wird direkt eingebunden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:29 Uhr.
Seite 2 von 2     12   

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