A while ago, I needed to have several routines that were able to compress and decompress certain files. I looked everywhere on internet to find some QB routines that could do these things. The only thing I found was that the famous DirectQB library had some simple RLE routines. Since I considered this a major gap in the QB Community (no compression! ) it was a great opportunity for myself to fill this gap, and I started making NeoCL. After being busy with it for almost a year in secret, here it is! By Neo, for the QB Community!
NeoCL stands for Neo Compression Library. Using this library, people can compress and decompress files for themselves. This could e.g. be used to pack all external files of a game or program in one package, with a compression ratio of about 20% - 80%. But it could also be used when files contain delicate data, as compression is also a good kind of encryption.
The NeoCL library has currently 7 algorithms built-in:
- Run Length Encoding
- Variable Bit Count
- Sliding Window
- Lempel Ziv Welch
Note that baconian is an original algorithm designed and coded by Neo and Scorp.
- No AC because I'll have to invent BigDecimals for QB first
The library comes with an amount of routines:
- To compress and decompress using each algorithm (so 7 compression routines and 7 decompression routines)
- To compress a file using a sequence
- To compress a file best
- And to decompress a file fully, i.e. undoing all recursive compressions applied to the file
So 17 routines for the user to enjoy!
Now, I also included a program in the library, which is called N.N.S. v1.0. It is a file packer using NeoCL's routines that is able to pack multiple files in one archive, all with compression! This is ideal for packing all external files of your program or game in one archive, like many "real" games. The program NNS is in the "NNS" folder in the archive.
This program also comes with USERSUBS.BAS containing routines for the user to open and read the archive in QB.
NOTE: This library comes with one big example, which is N.N.S. itself. (It uses the NeoCL library to create compressed archives). To learn about routines, you can also refer to the N.N.S. source code in NNS.BAS. (It also uses the OverLoader Library, and the NeoLib v1.6b Library).
Anyway, just read the NEOCL.TXT document to learn all about NeoCL! I hope you'll like NeoCL!
I'd like to have as much feedback as possible!
You can download NeoCL from: http://qbnz.com/harsoft/NeoCL.zip
P.S.: The algorithms can be optimized some more, but currently Scorp and I are inventing Adaptive Baconian.
P.S.2.: Anyone with a site, please add the package if you wish!
P.S.3.: To try out the N.N.S. program, try packing your whole RelLib or CosmoX or DirectQB directory... lol
P.S.4.: Please report any bugs
P.S.5.: If you like to see my code, go ahead! It's in the source directory!