Re: Can't read CString after serialization



Prior to XML, we loved "tagged binary" format. In tagged-binary, you would write out a
block which had a <type,length> pair, then each field had a <field-tag, length> pair. The
nice thing was that it was backward-compatible without much effort, for certain kinds of
backward-compatibility. Two approaches could be used (and the same applies to XML): throw
away any tag you don't recognize (loses information), silently (pop up a warning that a
newer version file is being read; upon save, pop up a warning that information has been
discarded, do you want to overwrite, but no popups during read). Alternatively, keep a
list of the unknown tags and write out verbatim on output (might work, depends on what
info is in the tags). In the latter case, a header bit says that the file had been
processed by an earlier version, and the newer version knew whether or not it could trust
certain values, or if they had to be recomputed, discarded, etc.

The nice thing about tagged binary was that you could easily write a simple program to
parse the file and show it (for example, a columnar display of tag id, tag value in
decimal and hex, etc.). We could write out complex structures because we used a technique
similar to based pointers, writing pointers out as relative offsets. If the target had
not been written out, a set of fixup blocks were appended to the end of the file and what
was stored was a flagged value that said "I'm a fixup reference" or "I'm a real offset".
We built huge systems using these techniques. I specified this technique back in 1977,
and it was ultimately used in our IDL system [Nestor, Newcomer, et al., "IDL: The Language
and its Implementation", Prentice-Hall, 1989].
joe

On Tue, 11 Mar 2008 08:09:50 -0700, "Tom Serface" <tom.nospam@xxxxxxxxxxxxx> wrote:

Oen of the biggest problem is similar to what OP is experiencing. It is
just too hard to read the resulting file so debugging it is very difficult.
If you don't want to use XML (perhaps too much overhead) even doing a binary
file with a format you know is better since you can open the file in binary
mode in VS and check it out. The serialized file structure was always
difficult for me to use especially when adding new items for future
releases. OK, I'll stop preaching now.

Tom

"Giovanni Dicanio" <giovanni.dicanio@xxxxxxxxxxx> wrote in message
news:ObKaEr1gIHA.4396@xxxxxxxxxxxxxxxxxxxxxxx

"Tom Serface" <tom.nospam@xxxxxxxxxxxxx> ha scritto nel messaggio
news:4C5C98CB-BE7E-4A22-9B81-2085E04C6046@xxxxxxxxxxxxxxxx

These kinds of problems are why I typically don't use serializing any
more. I like to use XML
[...]

Hi Tom,

I do agree with you.

The serialization mechanism of MFC template containers like CArchive is
not good IMHO; for example, I don't like very much the fact that we should
define global helper functions template specializations for the particular
type to serialize.

G


Joseph M. Newcomer [MVP]
email: newcomer@xxxxxxxxxxxx
Web: http://www.flounder.com
MVP Tips: http://www.flounder.com/mvp_tips.htm
.



Relevant Pages

  • Re: How can I ensure that I always have a list?
    ... tdom is an XML parsing extension for Tcl. ... # Match one tag. ... # quotes, ... # key/value pair) for further processing the next time we go ...
    (comp.lang.tcl)
  • Re: How can I ensure that I always have a list?
    ... tdom is an XML parsing extension for Tcl. ... # Match one tag. ... # quotes, ... # key/value pair) for further processing the next time we go ...
    (comp.lang.tcl)
  • Re: ruby html (or xhtml) forms class...
    ... xx is a library designed to extend ruby objects with html, xhtml, and xml ... xml or xhtml as clean looking and natural as ruby it self. ... attributes may be passed to any tag method as either symbol or string. ...
    (comp.lang.ruby)
  • Re: Cant read CString after serialization
    ... it was not the time to build steam engines. ... the DTD syntax would be expressed in XML!) ... parse the file and show it (for example, a columnar display of tag id, tag ... We built huge systems using these techniques. ...
    (microsoft.public.vc.mfc)
  • Re: FOR XML EXPLICIT Question
    ... The XML document format requires that you have a single top-level element ... FOR XML EXPLICIT query to add a root around the result. ... > with the Customer tag and the Contact tag. ...
    (microsoft.public.sqlserver.xml)

Loading