使用quicklz压缩txt文件

时间:2017-02-24 12:31:59

标签: c zip compression

我正在使用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);
 }

谢谢大家。

0 个答案:

没有答案