Delphi-Quellcode:
function MixStringEnc(Input1, Input2: String): String;
var
i: Integer;
begin
Result := '';
for i := 1 to Length(Input1) do
begin
Result := Result + Input1[i];
if Length(Input2) >= i then Result := Result + Input2[i];
end;
Result := Result + Char($255);
for i := i to Length(Input2) do
Result := Result + Input2[i];
end;
procedure MixStringDec(Input: String; var Output1, Output2: String);
var
i: Integer;
Split: Boolean;
begin
Split := False;
Output1 := '';
Output2 := '';
i := 1;
repeat
if Input[i] = Char($255) then Split := True;
if ((not Split)and(Input[i]<>Char($255))) then Output1 := Output1 + Input[i];
if ((length(Input) >= i+1)and(Input[i+1]<>Char($255))) then Output2 := Output2 + Input[i+1];
Inc(i,2);
until i >= Length(Input);
end;
Hier ist eine Variante die Du auch wieder zurückverwandeln kannst, bei Anzeige vom kodierten musst Du das Char($255) rausfiltern oder tausche das Char($255) mit was auch immer Du magst aus, aber bedenke das es ohne diesen einen speziellen Trenner keine korrekte Rückverwandlung möglich ist!
So sieht es aus wenn man es Anwendet:
Delphi-Quellcode:
Memo1.Lines.Add('');
Memo1.Lines.Add(''+MixStringEnc('Hans','Meier'));
MixStringDec(MixStringEnc('Hans','Meier'), tmp1, tmp2);
Memo1.Lines.Add(''+tmp1+' <-> '+tmp2);
Memo1.Lines.Add('');
Memo1.Lines.Add(''+MixStringEnc('Meier','Hans'));
MixStringDec(MixStringEnc('Meier','Hans'), tmp1, tmp2);
Memo1.Lines.Add(''+tmp1+' <-> '+tmp2);
Zitat:
HMaeniseɕr
Hans <-> Meier
MHeainesrɕ
Meier <-> Hans
Ps: Gern geschehn