[fpc-devel] Method for write string into TStreamt

thaddy at thaddy.com thaddy at thaddy.com
Tue Jul 22 18:17:09 CEST 2014


What I was a little bit more than hinting at in my previous answers is 
that it is impossible for an abstract read stream to know that there's a 
string to read. There is at least one higher level of implementation 
necessary: one that recognizes a string.
That means probably something like  storing the length and  storing a 
string marker and/or use RTTI for strings, to be consistent.

In practice, I use json for that kind of streaming. And that is already 
in place.

On 22-7-2014 14:37, Dmitry Boyarintsev wrote:
> On Tue, Jul 22, 2014 at 6:46 AM, thaddy at thaddy.com 
> <mailto:thaddy at thaddy.com> <thaddy at thaddy.com 
> <mailto:thaddy at thaddy.com>> wrote:
>
>     A case for ternary computing is not really a bad idea ;)
>
>     On 21-7-2014 21:42, Hans-Peter Diettrich wrote:
>
>         Dmitry Boyarintsev schrieb:
>
>             How about introducing a default parameter?
>             The parameter keeps the method backward compatible,
>             allowing write a string without the prefix.
>
>             public procedure TStream.WriteAnsiString(
>               const S: string;
>               withLength: Boolean = true;
>
>
>         How should a string without a length be read back?
>
>         DoDi
>
> I didn't see DoDi's email anywhere in the thread, though it seems like 
> there're two threads anyway:
> "Re: [fpc-devel] Method for write string into TStream" and 
> "[fpc-devel] Method for write string into TStream"
>
> Anyways, answering DoDi's question.
> It definitely won't be able to read a string without a size, but it 
> doesn't mean that the string size should immediately precede the 
> string content.
> So maybe a modification like this could help
>
> procedure TStream.ReadAnsiString(knownsize: Integer=-1)
>    if knownsize<0 then
>      TheSize := ...readsize
>   else
>      TheSize := knownsize
>
> thanks,
> Dmitry
>
>
> _______________________________________________
> fpc-devel maillist  -  fpc-devel at lists.freepascal.org
> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20140722/8142447d/attachment.html>


More information about the fpc-devel mailing list