我正在使用arm-cortex,用C / C ++编程。我正在生成一个带有电路板的CSV文件,它只包含数字(16位麦克风的幅度)。 我想使用便携,小巧,快速的库来压缩这个文件,所以我选择了QuickLZ。 (我不需要最好的压缩)。 这是链接:http://www.quicklz.com/download.html
据我所知,该算法应检查文件中的字符并进行压缩,以使src / dst为char*
。我试过做一些代码,但我获得了一个0字节的zip文件。
#include <stdio.h>
#include <stdlib.h>
#include "quicklz.h"
int main()
{
FILE *ifile = fopen("new_text_file.csv", "w");
FILE *ofile = fopen("new_zip_file.zip", "w");
char *src, *dst;
if (ifile != NULL) {
printf("OPEN SUCESS!\r\n");
}
else {
printf ("OPEN ERROR");
}
fprintf (ifile,"23483209489"); //Just for example
ifile = fopen("new.csv", "r");
qlz_state_compress *state_compress = (qlz_state_compress *)malloc(sizeof(qlz_state_compress));
size_t len, len2;
// allocate source buffer and read file
fseek(ifile, 0, SEEK_END);
len = ftell(ifile);
fseek(ifile, 0, SEEK_SET);
src = (char*) malloc(len);
fread(src, 1, len, ifile);
// allocate "uncompressed size" + 400 for the destination buffer
dst = (char*) malloc(len + 400);
// compress and write result
len2 = qlz_compress(src, dst, len, state_compress);
fwrite(dst, len2, 1, ofile);
fclose(ifile);
fclose(ofile);
}
谢谢大家。