ايران ويج

نسخه‌ی کامل: alg rotat13
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
این الگوریتم کدینگ Rotat13 هست که حالت دایره ای هر حرف رو 13 کاراکتر به سمت جلو یا 13 کاراکتر به سمت عقب حرکت میکنه

کد:
Function CaesarLeft(sString: String; iAmount: Integer):String;
var
i, iPos: Integer;
sAlphabet: String;
begin
  sAlphabet:= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  i:= 1;
  while i <= Length(sString) do
   Begin
    if sString[i] = ' ' then
     Result:= Result + ' '
     else
     begin
      iPos:= pred(pos(sString[i],sAlphabet));
      Result:= Result + sAlphabet[(((iPos + 26) - iAmount) mod 26) + 1];
     end;
   inc(i);
  end;
end;

Function CaesarRight(sString: String; iAmount: Integer):String;
var
i, iPos: Integer;
sAlphabet: String;
begin
  sAlphabet:= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  i:= 1;
  while i <= Length(sString) do
   Begin
    if sString[i] = ' ' then
     Result:= Result + ' '
     else
     begin
      iPos:= pred(pos(sString[i],sAlphabet));
      Result:= Result + sAlphabet[((iPos + iAmount) mod 26) + 1];
     end;
   inc(i);
  end;
end;

روش استفاده

کد:
procedure TForm1.btnLeftClick(Sender: TObject);
begin
memo1.Lines.Text:= CeasarLeft(AnsiUpperCase(Trim(memo1.Lines.Text)),1);
end;

procedure TForm1.btnRightClick(Sender: TObject);
begin
memo1.Lines.Text:= CeasarRight(AnsiUpperCase(Trim(memo1.Lines.Text)),1);
end;

//And for the ROT13 Cipher
procedure TForm1.btnROT13Click(Sender: TObject);
begin
memo1.Lines.Text:= CaesarRight(AnsiUpperCase(Trim(memo1.Lines.Text)),13);
end;
اینها الگوریتمهای اسناندارد هستن میتونی از روشون الگو بگیری یا با یه کم تغییرات خودت یکی بسازی
( :d یه نمونه واسه خودم دارم :d)