das bezieht sich aber schon auf die codierung, oder erst auf die decodierung?
ich nehme mal an ersteres...
bei der decodierung bekomme ich weiterhin eine fehlermeldung, die darauf hinweist, dass falsch gezählt wird.
(
exception econverterror zeigt leeren hexwert an)
geändert wie folgt:
Delphi-Quellcode:
function tform1.rleenc(text:ansistring):ansistring; //RLE
var
i,c,k:int64;
begin
result:='';
i:=1;
while i<=length(text) do
begin
c:=1;
while (text[i]=text[i+1])do //and (c<254)do
begin
c:=c+1;
i:=i+1;
end;
//if (text[i]='F')
//then result:=result{+'FF'}+inttohex(c,2)+'00'//+chr(32)
//showmessage(inttostr(c));
if (c>4)and (text[i]=chr(0)) //hier geändert f.d. Auftreten des Steuerzeichens!!
then result:=result+chr(0)+'01'+text[i]//+chr(32);
else
if (c>4) and (text[i]<>chr(0))
then result:=result+chr(0)+inttohex(c,2)+text[i]//+chr(32);
else
begin
k:=1;
while k<=c do
begin
result:=result+text[i];
k:=k+1;
end;
end;
i:=i+1;;
end;
//while length(result) mod 3<>0 do result:=result+'0';
//result:=hextostr(result);
//result:=base64enc(result);
end;