想用TZCompressionStream來壓縮浮點陣列,該怎么搞??我將浮點陣列讀入TMemoryStream中,再利用 TZCompressionStream壓縮,但是解壓出來是錯誤的。代碼如下
//壓縮的
TMemoryStream *fs = new TMemoryStream(); //要壓縮的原始記憶體流
fs->Write(f,4000); //f是一個1000個數字的陣列
int fsize = 0;
fsize = fs->Size; //檔案大小
TMemoryStream *ms = new TMemoryStream(); //要壓縮的原始記憶體流
ms->Write(&fsize,sizeof(fsize)); //建立接收的流,并寫入原始檔案大小
TZCompressionStream *cs = new TZCompressionStream(ms,zcDefault);
fs->SaveToStream(cs); //傳入壓縮資料
ms->SaveToFile("F:\\1.zip"); //保存
ShowMessage("完成");
delete cs;
delete fs;
delete ms;
//解壓的
TMemoryStream *fs = new TMemoryStream(); //準備解壓的流
TMemoryStream* ms = new TMemoryStream(); //接收解壓資料的流
fs->LoadFromFile("F:\\1.zip"); //必須是上一個壓縮方法生成的檔案
fs->Position = 0;
int fsize = 0;
fs->ReadBuffer(&fsize,sizeof(fsize)); //得到解壓之后的大小
ms->SetSize(4000); //設定接收解壓資料的流的大小
TZDecompressionStream* ds = new TZDecompressionStream(fs); //解壓流
ds->Read(ms->Memory, fsize); //把解壓后的資料讀出存放到已準備好接收的流
float *ff=new float[1000];
ms->Read(ff, ms->Size);
for(int i=0;i<1000;i++)
{
StringGrid1->Cells[2][i+1]=ff[i];
Chart1->Series[1]->AddXY(0.001*i,ff[i]);
}
delete fs;
delete ms;
delete ds;
uj5u.com熱心網友回復:
有木有大神可以幫忙瞅瞅
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/14194.html
標籤:基礎類
上一篇:邊緣檢測和區域生長相結合
下一篇:Windows開發
