Registriert seit: 6. Dez 2012
Ort: Nürnberg
103 Beiträge
Delphi 10.1 Berlin Starter
|
AW: Escape sequenzen ersetzen
11. Apr 2016, 14:20
Es ist immer noch ein Fehler in meinem Beitrag weiter oben. Die Sequenz <60>...<62> wird bei einem rekursiven Aufruf wieder geparsed. Unschön. Deswegen eine kleine Änderung:
Delphi-Quellcode:
function ParseLiteralsW(AInputString : WideString) : WideString;
var
p1,p2 : Integer;
tmpword : Word;
tmpw : WideString;
begin
Result:=AInputString;
p1:=1;
p2:=1;
p1:= PosExW('<',AInputString,p1);
p2:= PosExW('>',AInputString,p2);
if (p1>0) and (p2>0) and (p2>p1+1) then begin
Try
tmpword:=StrToInt(WideStrCopy(AInputString,p1+1,p2-p1-1));
if (tmpword>0) and (tmpword<=MaxWord) then begin //hier die Rekursion
tmpw:=WideStrCopy(AInputString,1,p1-1)+WideChar(tmpword)+ ParseLiteralsW(WideStrCopy(AInputString,p2+1,Length(AInputString)-p2));
Result := tmpw;
end;
except
End;
end;
end;
Chris
|
|
Zitat
|