@shmia:
Ich habe die while-Schleife in der Unescape-Funktion etwas korrigiert, da deine Funktion einen String der Form "bla%1Tbla" nach dem ersten "bla" abgeschnitten hat.
Da ich mir aber nicht sicher bin, ob ich das sicher und effizient programmiert habe, würde ich mich über eine kurze Rückmeldung freuen!
const HexChars = ['0'..'9', 'A'..'F', 'a'..'f'];
Delphi-Quellcode:
While pSrc <= pSrcEnd Do Begin
If (pSrc^ = '%') And ((pSrc+2) <= pSrcEnd) And ((pSrc+1)^ In HexChars) And ((pSrc+2)^ In HexChars) Then Begin
Inc(pSrc);
HexToBin (pSrc, pDst, 2);
Inc(pSrc, 2);
End
Else Begin
pDst^ := pSrc^;
Inc(pSrc);
End;
Inc(pDst);
End;