uses
Classes,SysUtils,VCLUnZip,VCLZip,EncdDecd,Forms,ComCtrls,Dialogs, DBAccess, MSAccess, MemDS;Function EnCodeMarc(MarcStr:String):String; //Marc编码
var
Mem,Mem1:TMemoryStream;
VCLZip:TVCLZip;
s:String;
Size:Integer;
begin
Result:='';
if Trim(MarcStr)='' then
begin
Exit;
end;
Mem:=TMemoryStream.Create;
Mem1:=TMemoryStream.Create;
VCLZip:=TVCLZip.Create(nil);
try
Mem.WriteBuffer(Pointer(MarcStr)^, Length(MarcStr));
Mem.Position:=0;
VCLZip.Password:=PASS;
VCLZip.ArchiveStream:=Mem1;
VCLZip.ZipFromStream(Mem,PASS);
Mem1.Position:=0;
Size := Mem1.Size;
SetString(S, nil, Size);
Mem1.Read(Pointer(S)^, Size);
Result:=EncodeString(s);
finally
Mem.Free;
Mem1.Free;
VCLZip.Free;
end;
end;Function DeCodeMarc(MarcStr:String):String; //Marc解码
var
Mem,Mem1:TMemoryStream;
VCLUnZip:TVCLUnZip;
s:String;
Size:Integer;
begin
Result:='';
if Trim(MarcStr)='' then
begin
Exit;
end;
s:=DecodeString(MarcStr);
Mem:=TMemoryStream.Create;
Mem1:=TMemoryStream.Create;
VCLUnZip:=TVCLUnZip.Create(nil);
try
Mem.WriteBuffer(Pointer(s)^, Length(s));
Mem.Position:=0;
VCLUnZip.Password:=PASS;
VCLUnZip.ArchiveStream:=Mem;
VCLUnZip.UnZipToStream(Mem1,PASS);
Mem1.Position:=0;
Size := Mem1.Size;
SetString(S, nil, Size);
Mem1.Read(Pointer(S)^, Size);
Result:=s;
finally
Mem.Free;
Mem1.Free;
VCLUnZip.Free;
end;
end;end.
Classes,SysUtils,VCLUnZip,VCLZip,EncdDecd,Forms,ComCtrls,Dialogs, DBAccess, MSAccess, MemDS;Function EnCodeMarc(MarcStr:String):String; //Marc编码
var
Mem,Mem1:TMemoryStream;
VCLZip:TVCLZip;
s:String;
Size:Integer;
begin
Result:='';
if Trim(MarcStr)='' then
begin
Exit;
end;
Mem:=TMemoryStream.Create;
Mem1:=TMemoryStream.Create;
VCLZip:=TVCLZip.Create(nil);
try
Mem.WriteBuffer(Pointer(MarcStr)^, Length(MarcStr));
Mem.Position:=0;
VCLZip.Password:=PASS;
VCLZip.ArchiveStream:=Mem1;
VCLZip.ZipFromStream(Mem,PASS);
Mem1.Position:=0;
Size := Mem1.Size;
SetString(S, nil, Size);
Mem1.Read(Pointer(S)^, Size);
Result:=EncodeString(s);
finally
Mem.Free;
Mem1.Free;
VCLZip.Free;
end;
end;Function DeCodeMarc(MarcStr:String):String; //Marc解码
var
Mem,Mem1:TMemoryStream;
VCLUnZip:TVCLUnZip;
s:String;
Size:Integer;
begin
Result:='';
if Trim(MarcStr)='' then
begin
Exit;
end;
s:=DecodeString(MarcStr);
Mem:=TMemoryStream.Create;
Mem1:=TMemoryStream.Create;
VCLUnZip:=TVCLUnZip.Create(nil);
try
Mem.WriteBuffer(Pointer(s)^, Length(s));
Mem.Position:=0;
VCLUnZip.Password:=PASS;
VCLUnZip.ArchiveStream:=Mem;
VCLUnZip.UnZipToStream(Mem1,PASS);
Mem1.Position:=0;
Size := Mem1.Size;
SetString(S, nil, Size);
Mem1.Read(Pointer(S)^, Size);
Result:=s;
finally
Mem.Free;
Mem1.Free;
VCLUnZip.Free;
end;
end;end.
解决方案 »
- 有没有IntraWeb开发的源码例子啊
- 发大量消息, 内存一直增加,请教
- 短日期格式的时间变量怎么正确导出到EXCEL??????????急!!在线等!!
- 我用ODBC联系EXCEL文件,但是在DELPHI的table控件中tablename 属性中却无法发现,?为什么
- 复印纸张大小
- 这样的数据如何插入?
- Delphi 写了小程序,运行显示VCL50.BPL 错误
- 请问在DELPHI中不用语句建立一个控件数组怎么作
- 我在基类窗体中无dbgrid,但继承后有的窗体有,有的窗体没有,我如何在基类加入一个popupmenu菜单以对dbgrid中的记录进行操作?
- SQL Server中的text类型能支持多大的容量?
- 昆明招DELPHI程序员
- 散分,头100人有效!
如果你的转的话,亦得把VclZip转过去,工作量很大。
要压缩干脆直接找C#的
要不就转换数据库里的东西