Hello: I'm trying to use ascii85 packages to decode/encode strings. But I get this weird results:
-------------- Original Plain: 123456 Correct Encoded: <~0etOA2)Y~> Encode 123456 = <~0etOA Decode <~0etOA = 1234 Decode <~0etOA2)Y~> = 123456 -------------- It looks like decoder stops reading somewhere. I'm using almost a verbatim copy of the packages example, but replacing TFileStreams by TStringStreams: Here is the code, --------------------- program Project1; uses sysutils,ascii85,classes; function Encode85(Plain: String): String; var StrmIn,StrmOut:TStringStream; StrmEnc85:TASCII85EncoderStream; begin StrmIn:=TStringStream.Create(Plain); try StrmOut:=TStringStream.Create(''); try StrmEnc85:=TAscii85EncoderStream.Create(StrmOut,72,True); try StrmEnc85.CopyFrom(StrmIn,0); Result:=StrmOut.DataString; finally StrmEnc85.Free; end; finally StrmOut.Free; end; finally StrmIn.Free; end; end; function Decode85(Encoded: string): string; var StrmIn,StrmOut:TStringStream; StrmDec85:TASCII85DecoderStream; buf:array [1..16] of byte; Count: LongInt; begin StrmIn:=TStringStream.Create(Encoded); StrmDec85:=TASCII85DecoderStream.Create(StrmIn); try StrmOut:=TStringStream.Create(''); try Repeat Count:=StrmDec85.Read(Buf,SizeOf(Buf)); If Count>0 then StrmOut.WriteBuffer(Buf,Count); Until (Count<SizeOf(Buf)); Result:=StrmOut.DataString; Finally StrmOut.Free; end; finally StrmDec85.Free; end; end; Const OriginalPlain='123456'; CorrectEncoded='<~0etOA2)Y~>'; var Encoded,Decoded:string; begin Writeln('Original Plain: ',OriginalPlain); Writeln('Correct Encoded: ',CorrectEncoded); writeln; Encoded:=Encode85(OriginalPlain); Writeln(Format('Encode %s = %s',[OriginalPlain,Encoded])); Decoded:=Decode85(Encoded); Writeln(Format('Decode %s = %s',[Encoded,Decoded])); Writeln; Encoded:='<~0etOA2)Y~>'; Decoded:=Decode85(Encoded); Writeln(Format('Decode %s = %s',[Encoded,Decoded])); Writeln; readln; end. --------------------- -- Saludos Santiago A. _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal