Folgende Implementierung unter
Delphi 5
ist weitgehend analog zur RLE-8Bit-Implementierung
(siehe
RLE (8−Bit)
),
deshalb habe ich auch weitgehend die Kommentare weggelassen.
Wenn von Analogie die Rede ist, muss man auch hervorheben, wo genau der Unterschied vorhanden ist.
Der wesentliche Unterschied liegt darin, dass gleiche Vorkommen von 16Bit-Zeichen komprimiert werden,
gleiche Vorkommen von 8Bit-Zeichen werden dagegen nicht komprimiert.
Statt den Methoden
Try8BitCompress
und
Decode8
werden hier die Methoden
Try16BitCompress
und
Decode16
verwendet, sonst bleibt alles beim Alten.
Es ist mir durchaus bewusst, dass die folgende Implementierung nicht sehr effizient ist.
Mir kommt es hier mehr auf die Semantik bzw. Lesbarkeit an, auch wenn die Effizienz darunter leiden sollte.