?
Solved

ROT13 function & procedure

Posted on 2010-08-24
8
Medium Priority
?
1,407 Views
Last Modified: 2012-05-10

I need a delphi 2010 function abd procedure for solving ROT13 using string and stringlist


something like


Tciphermode = (cmEncrypt, cmDecrypt)

function ROT13(AStr: String; cMode: TcipherMode): String;
begin
 //
 result:=
end;


procedure ROT13(Lines: TStringList; cMode: TcipherMode)
begin
 //
end;

thanks
0
Comment
Question by:Looking_4_Answers
  • 3
  • 2
  • 2
  • +1
8 Comments
 
LVL 8

Expert Comment

by:BdLm
ID: 33516184
are you looking for this code   http://www.linuxhilfen.org/c/c_aufsteiger_rot.html    converted to pascal ?
0
 
LVL 8

Expert Comment

by:BdLm
ID: 33516212
0
 
LVL 4

Expert Comment

by:bjove
ID: 33516391
Found something, hope it is what you need :)
function ROT13(AStr: String): String;
var
  i: integer;
  c: char;
begin
  for i := 1 to Length(AStr) do begin
    c := AStr[i];

    if (((c >= 'A') AND (c <= 'M')) OR ((c >= 'a') AND (c <= 'm'))) then
      c := chr(ord(c) + 13)
    else if (((c >= 'N') AND (c <= 'Z')) OR ((c >= 'n') AND (c <= 'z'))) then
      c := chr(ord(c) - 13);

    Result := Result + c;
  end;
end;

Open in new window

0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

Author Comment

by:Looking_4_Answers
ID: 33516897
@bjove:

that works if you use the same function to encrypt and decrypt. I was looking for a function that you passed another parameter (Tciphermode)

also, a procedure that does the same, but uses a TSringList

your 25% maybe 30% there
0
 
LVL 4

Accepted Solution

by:
bjove earned 2000 total points
ID: 33517018
Why do you need cMode param? Same function encrypts and decrypts.
procedure ROT13(AStrLst: TStringList);
var
  i, j: integer;
  c: char;
  AStr: string;
  s: string;
begin

  for i := 0 to AStrLst.Count - 1 do begin
    AStr := AStrLst[i];
    s := '';
    for j := 1 to Length(AStr) do begin
      c := AStr[j];

      if (((c >= 'A') AND (c <= 'M')) OR ((c >= 'a') AND (c <= 'm'))) then
        c := chr(ord(c) + 13)
      else if (((c >= 'N') AND (c <= 'Z')) OR ((c >= 'n') AND (c <= 'z'))) then
        c := chr(ord(c) - 13);

      s := s + c;
    end;
    AStrLst[i] := s;
  end;
end;

Open in new window

0
 
LVL 32

Expert Comment

by:Ephraim Wangoya
ID: 33517336
@Looking_4_Answers

ROT13 works like the classic XOR ecyption/decryption. The same code works both ways so you dont need to specify in your code that you are either cyphering or decyphering
0
 

Author Comment

by:Looking_4_Answers
ID: 33517860
@ewangoya

but thats what i am looking for

i can google all the code that has been offered already here.

I am looking for way - if its possible, to encrypt, and decrypt
0
 
LVL 8

Expert Comment

by:BdLm
ID: 33518528
if you execute  rot13 function twice you get the original message back

use the rot13 code from   http://forum.delphi-treff.de/showthread.php?24859-Algorithmen-Rot13 

and make a button like


procedure TForm1.Rot13_ButtonClick(Sender: TObject);
begin
     MsgEdit.text := ROT13_DeCode(MsgEdit.text);
end;

it does nor make any sense a separate encrypt, and decrypt   function


0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

A lot of questions regard threads in Delphi.   One of the more specific questions is how to show progress of the thread.   Updating a progressbar from inside a thread is a mistake. A solution to this would be to send a synchronized message to the…
Introduction Raise your hands if you were as upset with FireMonkey as I was when I discovered that there was no TListview.  I use TListView in almost all of my applications I've written, and I was not going to compromise by resorting to TStringGrid…
This Micro Tutorial will teach you how to add a cinematic look to any film or video out there. There are very few simple steps that you will follow to do so. This will be demonstrated using Adobe Premiere Pro CS6.
Loops Section Overview
Suggested Courses

864 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question