On 2016-01-13 10:40, Mark Morgan Lloyd wrote:
Torsten Bonde Christiansen wrote:
On 2016-01-13 10:06, Mark Morgan Lloyd wrote:
Serguei TARASSOV wrote:
On 13/01/2016 08:47, fpc-pascal-requ...@lists.freepascal.org wrote:
On 2016-01-12 10:45, Torsten Bonde Christiansen wrote:
Since TStream doesn't have any native WriteFloat/Double and the
likes,
some conversion is needed - but what is a good strategy for this?
Depends on size constraints.
In the simple case you should convert float to locale-independent
string value (no spaces, no commas separators) then write it.
If the size does matter, you may convert float to corresponding
byte array then write it.
Can I ask a naive question here please: does a binary stream store
endianness anywhere? In other words, is there any indication that
something running on ARM is about to get into trouble by reading
something written by (big-endian) MIPS?
Not that I'm aware of - i would think of it as a stream of bytes.
Endianess is defined by the CPU not by the file.
Thanks, I assumed that was the case but thought it worth checking.
I suppose that one could stream variants, i.e. the enumeration saying
what one was followed by a value.
Should writing binary floating point to a stream note that it's IEEE
format, just in case anybody ever tries to process it on a platform
that supports alternatives?
It would be great if storing floating point could be in IEEE, to have
a standard as reference.
I'm not at all sure about this, but I think I've seen something that
suggested that byte ordering in external representations was covered
by the standard.
I'm not even sure how (or even if) TStream decendants handles endianness
for integers.... I'm guessing they are not.
Regards,
Torsten.
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal