سلام
برای فشرده سازی یک جدول از نوع پاراداکس می توانید از کد زیر استفاده کنید
procedure PARADOXPACK(TABLE:TTABLE);
VAR
TBDESC:CRTBLDESC;
HDB:HDBIDB;
TABLEPATH:ARRAY[0..DBIMAXPATHLEN] OF CHAR;
BEGIN
FillChar(TBDESC,SIZEOF(TBDESC),0);
WITH TBDESC DO BEGIN
StrPCopy(SZTBLNAME,TABLE.TableName);
STRPCOPY(SZTBLTYPE,SZPARADOX);
BPACK:=TRUE;
END;
TABLE.Open;
HDB:=NIL;
Check(DBIGETDIRECTORY(TABLE.DBHANDLE,TRUE, TABLEPATH));
TABLE.Close;
CHECK(DBIOPENDATABASE(NIL,'STANDARD',DBIRE ADWRITE,DBIOPENEXCL,NIL,0,NIL,HDB));
CHECK(DBISETDIRECTORY(HDB,TABLEPATH)&# 41;;
Check(DBIDORESTRUCTURE(HDB,1,@TBDESC,NIL,N IL,NIL,FALSE));
TABLE.Open;
END;
برای فشرده سازی جداول نوع DBASE از دستور زیر استفاده نمایید
DBIPACKTABLE(TABLE1.DBHANDLE,TABLE1.HANDLE,NIL ,NIL,TRUE);
نقل از کتاب 296 برنامه اجرا شده در دلفی 6 ( نویسنده : حسین ریاضی )