【发布时间】:2013-12-19 19:27:02
【问题描述】:
我有每个大小为 2,475 个字符的字符串(数百万个)。这些字符串由 0 和 1 组成。我将每个字符串转换为 ASCII 并返回,因此 8 个初始字符变为 1。这给了我 310 个字符的更短的长度。但由于这个长度仍然足够大,我尝试对已经缩短的字符串进行一些额外的压缩。我使用了霍夫曼编码/解码,但结果并不那么重要。我还尝试了一种 RLE 方法,在现有字符串上具有更好的结果(编码在 205 到 212 之间)字符。但这是我的问题!由于我事先不知道字符串,因此我正在寻找一种产生固定长度输出的压缩/解压缩算法。存在这样的东西吗?我也搜索了有关无尽压缩的信息,但没有找到任何可靠的建议/算法。任何想法都会受到欢迎。
【问题讨论】:
-
为什么需要定长输出?
-
或许您可以先尝试将字符串拆分为两个字符串?
-
我必须将字符串存储在一个随机文件中,这就是我需要固定长度的原因。
-
@Demetres 我不确定我是否完全理解,但你听说过固定长度的字符串吗? IE。
Dim str as String * 5其中5是固定长度 -
@mehow 我的问题不是固定长度的字符串。如果你阅读了所有的 cmets,你会看到我在同一个字符串上应用了 2 种压缩算法,一个接一个。第二种算法是运行长度编码,它产生可变长度的结果。这个事实增加了额外的复杂性,因为我必须保持压缩字符串的实际长度。此外,为了写入文件的字符串会被传输到更大的文件中。所以,我一直在寻找更好的方法,但是......
标签: string algorithm vba compression