Lgpgnc is very simple program which helps to prepare pgn files for better compression with any compression utility.
This is only alpha version, so it may contain bugs.
Changes from version 1.1a:
1.EOLs both DOS(0x0D 0x0A) and Unix(0x0A).
2.Comments({...}) length is not limited.
3.Attack function now about 2 times faster(2.5 times with ASM).
Converted files must be compatible with previous version.
Usage: lgpgnc c|x[0|1] Input_file Output_file
Examples:
lgpgnc c lg71.pgn lg71.lgc converts lg71.pgn to lg71.lgc
lgpgnc x lg71.lgc lg71.pgn retrieves lg71.pgn from lg71.cmp with SAN output
lgpgnc x0 lg71.lgc lg71.pgn the same as previous
lgpgnc x1 lg71.lgc lg71.pgn retrieves lg71.pgn from lg71.cmp with long algebraic output
Some test results
| Name
| Original
| WinZip 6.3 max
| PkZip 2.50 -exx
| Rar -m5
| 7zip -mx
| Arhangel -mt
| Boa -m7
|
| lg71.pgn
| 155871
| 50710
| 50511
| 49590
| 48162
| 38837
| 36423
|
| lg71.lgc
| 27406
| 15397
| 15106
| 15760
| 14989
| 15131
| 14568
|
| lg0700a.pgn
| 358871
| 119802
| 119648
| 115877
| 113954
| 86301
| 81916
|
| lg0700a.lgc
| 65016
| 36903
| 36152
| 37302
| 35622
| 35733
| 33944
|
| book.txt*
| 358871
| 119802
| 119648
| 115877
| 113954
| 86301
| 81916
|
| book.lgc
| 65016
| 36903
| 36152
| 37302
| 35622
| 35733
| 33944
|
Remarks:
*-middle.zip from Crafty's site.
As you can see the size of converted file itself is already smaller than any compressed PGN
so you may consider it as a compressor, but it still compressible 30-50% more
and performance difference between slow arithmetic(ARHANGEL,BOA) and fast LZ(ZIP,RAR)
compressors is gone...
Download lgpgnc v1.1alpha (with TP sources - 20kB)