LIRE(fichierArgument,Buffer); ECRIRE(fichierResultat,Buffer);
LIRE(fichierArgument,Buffer1); DEPLACEMENT(Buffer2,Buffer1); ECRIRE(fichierResultat,Buffer2);Il y a plusieurs façons de programmer la fonction 'DEPLACEMENT(...)' :
LIRE(fichierArgument,Buffer1); COMPRESSER(Buffer2,Buffer1); ECRIRE(fichierResultat,Buffer2);Où 'COMPRESSER(...)' désigne une fonction qui compte le nombre R de répétitions successives d'un même caractère 'K'. Si R est strictement inférieur à 4, le caractère 'K' est simplement répété R fois comme dans le fichier à compresser. Dans le cas contraire, la chaîne 'KKKK' suivie d'un octet contenant R-4 en binaire est générée :
K --> K KK --> KK KKK --> KKK KKKK --> KKKK[0] KKKKK --> KKKK[1] KKKKKK --> KKKK[2] KKKKKKK --> KKKK[3] KKKKKKKK --> KKKK[4] KKKKKKKKK --> KKKK[5] (...)(où '[n]' représente un octet contenant la valeur 'n' en binaire). Evidemment R-4 ne peut excéder 255 et lorsque cela se produit, le compactage précédent est répété autant de fois que nécessaire.
K --> K KK --> KK KKK --> KKK KKKK --> KKKK[0] KKKKK --> KKKK[1] KKKKKK --> KKKK[2] KKKKKKK --> KKKK[3] KKKKKKKK --> KKKK[4] KKKKKKKKK --> KKKK[5] (...)(où '[n]' représente un octet contenant la valeur 'n' en binaire). Evidemment R-4 ne peut excéder 255 et lorsque cela se produit, le compactage précédent est répété autant de fois que nécessaire.