谁能给我个高效、快速的编码?用base64编码的效率和速度都很慢,谁给个好的方法,要附带源码哦

解决方案 »

  1.   

    >>谁能给我个高效、快速的编码?用base64编码的效率和速度都很慢
    那你想编成怎样的码呢??
      

  2.   

    //问题要说清楚!~~uses EncdDecd;procedure EncodeStream(Input, Output: TStream);
    procedure DecodeStream(Input, Output: TStream);
    function EncodeString(const Input: string): string;
    function DecodeString(const Input: string): string;//BASE64挺好的,不知你要到达什么样的速度~~
    //拿这几个Delphi6自带的函数测试看看~~
      

  3.   

    我的一个数据用base64编码,需要14秒,编码后1522140字节
    用上面的encodestring编码,需要11秒,编码后1562192字节,本想这个速度快(这个最重要),可惜用起来才发现它编码完的东西含换行符,不能用了
      

  4.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      S: string;
      vTickCount: DWORD;
      I: Integer;
    begin  Randomize;
      SetLength(S, 1000000);
      for I := 1 to Length(S) do
        Byte(S[I]) := Random(256);  vTickCount := GetTickCount;
      S := EncodeString(S);
      Caption := Format('Time:%d Length:%d', [GetTickCount - vTickCount, Length(S)]);
    end;处理这个大小,也只是毫秒级别的!怎么可能到秒级~~
    并且EncodeString的结果也没有换行符~~
    不知道你怎么用的!?(汗)……
      

  5.   

    我也找不出为什么换行符是肯定有的,你可以把结果用writein写到文件里,再用ultraedit打开看看,一行好像是30多字符吧(注意把ultraedit的自动换行模式取消掉)
      

  6.   

    to zswangII(伴水清清)(一贴不灌,何以灌天下?) procedure TForm1.Button1Click(Sender: TObject);
    var
      S: string;
      vTickCount: DWORD;
      I: Integer;
    begin  Randomize;
      SetLength(S, 1000000);
      for I := 1 to Length(S) do
        Byte(S[I]) := Random(256);  vTickCount := GetTickCount;
      S := EncodeString(S);
      Button1.Caption := Format('Time:%d Length:%d', [GetTickCount - vTickCount, Length(S)]);
      memo1.Text:=s;   <------注意这里
    end;
    为什么memo1中什么都没有?显示不出来?写到文件里倒是有的