Compression Plus 数据格式?
Compression Plus data format?
我收到了一个数据库,其格式可以追溯到 1990 年代,并且显然是在移动到 SQL 服务器之前首先创建为 MDB 格式。没问题,除了一件事……许多表的列包含 20 年数据的月度数据,每月一个 double/float。字段中的数据已被“压缩”并存储为十六进制字符串。
有一个不再运行的相关应用程序,但有助于解决有关缺少 DLL 的错误,CompPl32.dll。闲逛,it appears this was a 1996 compression library 来自一家名为 EllTech 的公司,早已不复存在。尽管可以下载 DLL,但我宁愿避免使用它。是否有人熟悉该格式并对如何解压缩它有建议?这是数据库中的数据示例:
CompressedLen UncompressedLen Data
18 3080 EDC08100000000C2B0FCA903F936000020E70000
如果相信 18,则前 32 位不是数据的一部分。每个字段的前两个字符都是“ED”。
看来压缩数据只是原始压缩,其中二进制数据以十六进制编码。实际上,将十六进制转换为二进制后的前 18 个字节是有效且完整的原始 deflate 流,它解压缩为 3080 字节。特别是 3080 个全为零的字节。
您可以使用 DeflateStream class 解压缩原始压缩数据。
我不知道为什么在18字节的deflate数据之后有两个无关的零字节。也许他们觉得有必要将其四舍五入为四的倍数。
我收到了一个数据库,其格式可以追溯到 1990 年代,并且显然是在移动到 SQL 服务器之前首先创建为 MDB 格式。没问题,除了一件事……许多表的列包含 20 年数据的月度数据,每月一个 double/float。字段中的数据已被“压缩”并存储为十六进制字符串。
有一个不再运行的相关应用程序,但有助于解决有关缺少 DLL 的错误,CompPl32.dll。闲逛,it appears this was a 1996 compression library 来自一家名为 EllTech 的公司,早已不复存在。尽管可以下载 DLL,但我宁愿避免使用它。是否有人熟悉该格式并对如何解压缩它有建议?这是数据库中的数据示例:
CompressedLen UncompressedLen Data
18 3080 EDC08100000000C2B0FCA903F936000020E70000
如果相信 18,则前 32 位不是数据的一部分。每个字段的前两个字符都是“ED”。
看来压缩数据只是原始压缩,其中二进制数据以十六进制编码。实际上,将十六进制转换为二进制后的前 18 个字节是有效且完整的原始 deflate 流,它解压缩为 3080 字节。特别是 3080 个全为零的字节。
您可以使用 DeflateStream class 解压缩原始压缩数据。
我不知道为什么在18字节的deflate数据之后有两个无关的零字节。也许他们觉得有必要将其四舍五入为四的倍数。