2012-06-12 65 views
0

我得到了一個「新工作」,以QR檔案「歸檔」一些數據。德爾福,QR,WMF

當修改並保存到數據庫中的數據結構,那麼我們開始了「靜音打印」與WMF過濾器,我趕上了文件,我所有這些,存儲在日誌記錄數據庫中的BLOB。

一切順利,但後來在需要的時候,以避免重複相同的報告。

我們禁用「時間戳QR領域」,但記錄重複。

我把一些CRC在數據庫中,和我從一個頁面的數據(WMF)計算它。

什麼是有趣的是,當我退出程序,新生成的WMF改變 - 所以CRC也發生了變化。

我認爲這是由QR造成的,那麼我查這一個簡單的Delphi程序:

procedure TForm1.BitBtn1Click(Sender: TObject); 
var 
    WMF : TMetaFile; 
    mfc : TMetaFileCanvas; 
begin 
    WMF := TMetaFile.Create; 
    mfc := TMetaFileCanvas.Create(WMF, 0); 
    try 
     WMF.Width := 1000; 
     WMF.Height := 1000; 
     mfc.Brush.Color := clRed; 
     mfc.FillRect(Rect(0, 0, 100, 100)); 
    finally 
     mfc.Free; 
     WMF.SaveToFile('test1.wmf'); 
     WMF.Free; 
    end; 
end; 

當我重新啓動應用程序,新的WMF文件與以前不同。

我以爲我解決了將wmf伸入bmp.Canvas的問題,但是這會減慢日誌記錄速度,因爲每個bmp都是4 MB,並且有10個頁面,我必須在4 * 10 MB上進行CRC校驗。 (WMF只有85-100 KByte每頁vs 4 MB位圖)

所以我正在尋找一些簡單的方法,我可以計算WMF的CRC,也許如果我可以完全分割WMF頭,然後我得到解決這個問題......我不知道在這一刻。

你有什麼想法嗎?請告訴我!

謝謝。

+1

通過「QR」,你的意思是快速報告?或者是其他東西?但是由於您似乎已經確定「QR」與您的問題沒有關聯,您爲什麼將它包含在您的問題中呢?我不確定你在問什麼。請編輯您的問題,以刪除不相關的細節,並直接解決您所問的問題。 –

+0

QR = QuickReport,對不起! – durumdara

回答

0

將報告導出爲文本,然後比較其crc。

這是最簡單的解決方案。

您還可以枚舉圖元文件的元素,但它會變得更加困難。