Lgpgnc is very simple program which helps to prepare pgn files for better compression with any compression utility.
Download lgpgnc v1.4 (with TP sources - 21kB)
Changes in version 1.4:
1.Fixed bug in decompression too long player names.
2.Fixed bug in compression routine: special characters in opening name.
3.Converted files are compatible with previous versions.
Changes in version 1.3:
1.Correct process of [EventDate] tag.
2.Added "s" and "mXX" options.
3.Converted files are compatible with previous versions.
Changes in version 1.2:
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][s][mXX] Input_file Output_file
Examples:
lgpgnc c lg71.pgn lg71.lgc converts lg71.pgn to lg71.lgc
lgpgnc xs lg71.lgc lg71.pgn silently retrieves lg71.pgn from lg71.cmp with SAN output
lgpgnc x0sm70 lg71.lgc lg71.pgn the same as previous + right margin is set to 70
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
|
Remarks:
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 is still compressible 30-50% more
and performance difference between slow arithmetic(ARHANGEL,BOA) and fast LZ(ZIP,RAR)
compressors is gone...