Compressing an entire stack
Shari
shari at gypsyware.com
Fri Mar 11 08:43:22 EST 2005
My many many thanks to Brian Yennie and Richard Gaskin for their
posts last year and the year before about stack compression. I've
developed a need for it and boy is it going to be a lifesaver! The
code I ended up using uses three stacks:
stackToShrink - the original, bloated stack
storageStack - the stack that holds the compressed data from the
bloated stack (this stack gets distributed with the program)
userStack - the stack gets uncompressed when the user opens the
program and saved into a permanent stack on their drive
To shrink:
put url ("binfile:" & stackToShrink) into s
set the stackData of stack storageStack to compress(s)
save stack storageStack
To open:
if there is not a stack userStack then
put decompress(the stackData of stack storageStack) into s
set the fileType to "xxxxMSTK" # xxxx is changed to whatever the
creator code for the program is
set the stackFileType to "xxxxMSTK" # wasn't sure if both types
were needed so used both
put s into url ("binfile:" & userStack)
save stack userStack
end if
To use:
start using userStack # this stack never gets seen, it just holds data
I tried to use the following but couldn't get it to work:
set the stackData of storageStack to compress(stack stackToShrink)
You guys are dreamboats for sharing this info. It has become
important to me to shrink the stack size where possible.
Shari
--
Mac and Windows shareware games
http://www.gypsyware.com
More information about the metacard
mailing list