16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"RE:暗号化"
この発言は #00294 J-OH! さんの暗号化 に対するコメントです
この発言に対し以下のコメントが寄せられています
#00309 J-OH! さん RE^2:暗号化
J-OH!さん、こんにちは。
以下のようにすれば、ずっと短くできます。
但し、関数AngouでdataにATableに無い文字が含まれていると
エラーになりますので、入力段階で制限する必要があります。
function Angou(const data: string):string;
const
ATable = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ;:=<';
var
i: Integer;
begin
Result :='';
for i := 1 to Length(data) do
Result := Result +
ATable[Length(ATable) - Pos(Upcase(data[i]), ATable) + 1];
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text := Angou(Edit1.Text);
end;
● 応用
ATableと同じ長さの変換テーブルBTableを用意して
Result := Result + BTable[Pos(Upcase(data[i]), ATable)];
とする事もできます。
MISO:(CXP06505)
Original document by MISO 氏 ID:(CXP06505)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|