home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
No Fragments Archive 10: Diskmags
/
nf_archive_10.iso
/
MAGS
/
ST_USER
/
1990
/
USERJL90.MSA
/
LISTINGS.ARC
/
RLE.BSC
< prev
next >
Wrap
Text File
|
1990-05-16
|
751b
|
21 lines
REM Run Length Encoding - by R.A.Waddilove
INPUT "File to compact:"i$
INPUT "Archive filename:"o$
PRINT:PRINT "Scanning file..."
DIM byte%(255):F%=OPENIN i$:c%=0
REPEAT:byte%(BGET#F%)=1:c%=c%+1:UNTIL EOF#F%:CLOSE#F%
flag%=-1:FOR i%=0 TO 255:IF byte%(i%)=0 THEN flag%=i%
NEXT:IF flag%=-1 THEN PRINT "Can't compact!":END
PRINT "Encoding...":I%=OPENIN i$:O%=OPENOUT o$:BPUT#O%,flag%:b1%=BGET#I%
REPEAT:b2%=BGET#I%:IF b2%=b1% AND EOF#I%=0 THEN
b3%=BGET#I%:IF b3%=b2% AND EOF#I%=0 THEN
BPUT#O%,flag%:BPUT#O%,b1%:c%=2:REPEAT:b1%=BGET#I%:c%=c%+1
UNTIL b1%<>b2% OR c%=255 OR EOF#I%:IF EOF#I% THEN b1%=c%+1 ELSE BPUT#O%,c%
ELSE
BPUT#O%,b1%:BPUT#O%,b2%:b1%=b3%
ENDIF
ELSE
BPUT#O%,b1%:b1%=b2%
ENDIF
UNTIL EOF#I%:BPUT#O%,b1%:CLOSE#I%:CLOSE#O%