回 帖 发 新 帖 刷新版面

主题:[讨论]写的一个省空间的代码,大家给看看

SUB jfile (a(), name$, b)
OPEN name$ FOR BINARY AS #20
IF b = 1 THEN
FOR i = UBOUND(a) TO LBOUND(a)
PUT #20, , a(i)
SEEK #1, SEEK(20) - 1
NEXT i
ELSEIF b = 2 THEN
FOR i = 1 TO INT((LBOUND(a) - UBOUND(a)) / 2)
GET #20, , t
a(i * 2 - 1) = t \ 256: a(i * 2) = t - a(i * 2 - 1)
NEXT i
ELSE
PRINT "file open error! type error!"
END IF
END SUB
b为打开方式,为1为写入,为2时为读取
这个模块适合保存小于小于256的整数,空间超省,比2进制还省1倍
_________________

回复列表 (共2个回复)

沙发

比二进制?

FOR i = UBOUND(a) TO LBOUND(a)
  k$=k$+chr$(a(i))
NEXT i
  put #f,,k$

慢慢研究.
如果要针对于压缩目的的话,
得去参考一下压缩原理和算法之类的书籍.

板凳

如果不压缩的话
正常存储
这个比2进制还省空间

我来回复

您尚未登录,请登录后再回复。点此登录或注册