Solved

ROT13 function & procedure

Posted on 2010-08-24
8
1,315 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
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.

 

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 500 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:ewangoya
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: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying 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

Suggested Solutions

Title # Comments Views Activity
add combobox item based on numbers 9 154
drawing animated level bar based on numbers 3 104
can't find the executable in Simulator 1 100
Delphi...Split view - idea? 1 89
The uses clause is one of those things that just tends to grow and grow. Most of the time this is in the main form, as it's from this form that all others are called. If you have a big application (including many forms), the uses clause in the in…
Introduction The parallel port is a very commonly known port, it was widely used to connect a printer to the PC, if you look at the back of your computer, for those who don't have newer computers, there will be a port with 25 pins and a small print…
This video shows how to use Hyena, from SystemTools Software, to bulk import 100 user accounts from an external text file. View in 1080p for best video quality.

856 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