Jeg vet at man kan sette inn tegn i en streng med Insert(), og slette med Delete(). Jeg ønsker en prosedyre som setter inn et tilfeldig tegn for annenhvert tegn som "hei" -> "ìhàe¼i»", og en prosedyre som sletter annenhvert tegn som "ìhàe¼i»" -> "hei".
.
Jeg håper noen kan hjelpe meg med dette
MVH
DiZpel
Hej,
For at indsætte tilfældige karakter i en streng kan det gøres på følgende måde:
Jeg skal dog lige sige at koden er skrevet direkte ind her så der er evt. nogle enkelte fejl.
function InsertRandomCharacters(AStr : String) : String;
var
I, Idx : Integer;
C : Char;
begin
Result := StringOfChar(' ', Length(AStr)*2); // lav plads til ekstra karakter i resultat strengen.
Idx := 1;
for I := 1 to Length(AStr) do
begin
Result[Idx] := Char(Random(254)+1);
Result[Idx+1] := AStr[I];
Inc(Idx, 2);
end;
end;
function RemoveRadomCharacters(AStr : String) : String;
var
I, Idx : Integer;
begin
Result := StringOfChar(' ', Length(AStr) div 2);
Idx := 2;
for I := 1 to Length(AStr) div 2 do
begin
Result[I] := AStr[Idx];
Inc(Idx, 2);
end;
end;
procedure TestFunctions;
var
OrgStr : String;
EncStr : String;
DecStr : String;
begin
OrgStr := 'Udvikleren.dk';
EncStr := InsertRandomCharacters(OrgStr);
DecStr := RemoveRandomCharacters(EncStr);
if OrgStr = DecStr then
begin // Okay alt gik som det skulle :-)
end
else
begin // Øv, der var en fejl :-(
end;
end;
Hvis det er kryptering du er interesseret i så kig på dette link:
http://www.ohdave.com/delphi/Han har lavet klasser til at kryptere med DES og BlowFish.
Du skal hente "BlockCiphers" og hvis du er interesseret i at kunne kryptere data som du vil ligge i registry så skal du også hente "EncryptedRegistry". Alle klasserne kan du frit benytte.
Mvh
Michael.