poi-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Glen Stampoultzis <gst...@iinet.net.au>
Subject Re: Weird continue records
Date Wed, 18 Aug 2004 01:51:29 GMT

Okay... sometimes it helps to say things in public.

What happens is this:

Usually you get drawing records followed by OBJ record or text object 
records repeating for as many shapes as you have in your sheet.  This is 
complicated by the fact that the escher records actually form one stream 
that is split across those drawing records.  Painful but at least sort of 
consistent.

It seems that the Excel file format people didn't like this consistency 
however. They had this great idea that after writing a certain number of 
records this way they should change things and start writing continue 
records.  Now the thing with continue records is that they were supposed to 
be for continuing records that have grown past the max record size and they 
immediately follow the record they are continuing.

You've probably guessed by now that the way they're being used for drawing 
records does not follow this pattern.  After write X records Excel will 
start writing records in the pattern: OBJ -> CONTINUE -> OBJ -> CONTINUE 
etc.  One might logically think that the continue record is continuing the 
OBJ record but it is actually continuing the very last drawing record we 
ran across.

Got to love Excel.

Regards,

Glen

At 11:10 AM 18/08/2004, you wrote:

>I'm probably on my own with this but I thought I'd throw it out there anyway.
>
>I've got some really strange behavior I noticed with OBJ records.  When 
>you have an Excel sheet with a really large number of OBJ records Excel 
>will sometimes trail it with a continue record.  The really weird thing is 
>that it doesn't seem to be a continuation of the OBJ record.  Take this 
>real life example:
>
>
>OBJ Record:
>
>00000000 15 00 12 00 01 00 4E 00 11 60 00 00 00 00 84 BB ......N..`......
>00000010 E8 00 00 00 00 00 00 00 00 00                   ..........
>
>[OBJ]
>SUBRECORD: [ftCmo]
>     .objectType           = 0x0001 (1 )
>     .objectId             = 0x004E (78 )
>     .option               = 0x6011 (24593 )
>          .locked                   = true
>          .printable                = true
>          .autofill                 = true
>          .autoline                 = true
>     .reserved1            = 0x00000000 (0 )
>     .reserved2            = 0x00E8BB84 (15252356 )
>     .reserved3            = 0x00000000 (0 )
>[/ftCmo]
>SUBRECORD: [ftEnd]
>[/ftEnd]
>[/OBJ]
>
>Followed by the continue block below:
>
>00000000 0F 00 04 F0 64 00 00 00 42 01 0A F0 08 00 00 00 ....d...B.......
>00000010 4F 04 00 00 00 0A 00 00 73 00 0B F0 2A 00 00 00 O.......s...*...
>00000020 BF 00 08 00 08 00 44 01 04 00 00 00 7F 01 00 00 ......D.........
>00000030 01 00 BF 01 00 00 10 00 C0 01 40 00 00 08 D1 01 ..........@.....
>00000040 01 00 00 00 FF 01 10 00 10 00 00 00 10 F0 12 00 ................
>00000050 00 00 00 00 04 00 D0 02 10 00 1E 00 05 00 A0 02 ................
>00000060 13 00 5A 00 00 00 11 F0 00 00 00 00             ..Z.........
>
>
>As you can see the OBJ record is complete (you can tell by the 
>ftEnd).  The continue makes no sense in this context.  Unless it's 
>continuing the record before the OBJ for some sick reason... hrrm..
>
>Regards,
>
>
>Glen Stampoultzis
>gstamp@iinet.net.au
>http://members.iinet.net.au/~gstamp/glen/
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: poi-dev-unsubscribe@jakarta.apache.org
>For additional commands, e-mail: poi-dev-help@jakarta.apache.org
>


Glen Stampoultzis
gstamp@iinet.net.au
http://members.iinet.net.au/~gstamp/glen/

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message