首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

Delphi加密解密代码转C#请.附代码

2012-04-02 
Delphi加密解密代码转C#请高手指点.附代码.usesClasses,SysUtils,VCLUnZip,VCLZip,EncdDecd,Forms,ComCtrl

Delphi加密解密代码转C#请高手指点.附代码.
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.

[解决办法]
应该是字符串压缩吧,主要的工作还是由VclZip控件完成的。
如果你的转的话,亦得把VclZip转过去,工作量很大。
要压缩干脆直接找C#的
[解决办法]
你找一下有没,要不用Delphi写个Dll专门负责这个工作,给C#调用,这是应该是最快也是最有效的方法.
要不就转换数据库里的东西

热点排行