CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  语言基础/算法/系统设计

有哪位大侠对delphi和vb都懂的,麻烦将下面的一段delphi代码换成VB代码。

楼主enxi(恩熙 @_@)2004-12-01 11:56:14 在 Delphi / 语言基础/算法/系统设计 提问

//以下是   encoded.pas   文件代码  
   
  unit   Encoded;  
   
  interface  
  uses    
      Windows,   Messages,   SysUtils,   Classes;  
  type  
        TEncodedStream   =   class(TFileStream)  
      private  
          Fkey:char;  
      public  
        constructor     create(const   Filename:   string;   Mode   :word);  
        function     Read   (var   buffer;count   :longint   ):longint;   override;  
        function   Write(   const   Buffer;   count:   longint):   longint;   override;  
        property   Key   :   char   read   Fkey   write   Fkey   default   'A';  
   
      end;  
   
   
   
  implementation  
   
   
   
  constructor   TEncodedStream.create(const   Filename:string;   mode:   word);  
  begin  
    inherited     create(filename,Mode);  
    Fkey   :='A';  
  end;  
   
  function     TEncodedStream.Write(const   Buffer;   Count:longint):longint;  
  var  
    pBuf,   pEnc   :pchar;  
    I,   EncVal   :Integer;  
  begin  
      GetMem(pEnc,count);  
      try  
        pBuf:=Pchar(@buffer);  
        for   I:=0   to   Count   -1   do  
        begin  
            Encval   :=   (ord(pBuf[i])+   ord(Key))   mod   256;  
            pEnc[i]:=   char   (Encval);  
        end;  
        Result   :=   inherited   write   (pEnc^,count);  
      finally  
      FreeMem(pEnc,count);  
      end;  
  end;  
   
  function   TEncodedStream.Read(var   Buffer;   count:longint):longint;  
  var  
    pBuf,   pEnc   :pchar;  
    I,   CountRead,EncVal   :Integer;  
  begin  
      GetMem(pEnc,count);  
      try  
      CountRead:=inherited   Read(pEnc^,count);  
        pBuf:=Pchar(@buffer);  
        for   I:=0   to   CountRead   -1   do  
        begin  
            Encval   :=   (ord(pEnc[i])-   ord(Key))   mod   256;  
            pBuf[i]:=   char   (Encval);  
        end;  
      finally  
      FreeMem(pEnc,count);  
      end;  
      Result   :=countRead;  
  end;  
   
   
   
  end.     //encoded.pas     over  
   
   
   
  //在主程序中用到了该pas文件:  
   
  procedure   TForm1.creatEncfile(stroldfilename,   strnewfilename:string);  
  var  
      stream1   :   Tfilestream;  
      Encstr   :   TEncodedStream;  
      //strfilename   :   string;  
      begin  
                stream1   :=tfilestream.create(stroldfilename,   fmopenread);  
                try  
                      Encstr   :=TEncodedStream.create(strnewfilename,   fmopenwrite   or   fmcreate);  
                      try  
                        Encstr.copyfrom(stream1,stream1.size);  
                        finally  
                        Encstr.free;  
                        end;  
                  finally  
                      stream1.free;  
                  end;  
  end;  
   
   
   
  我想在vb中能有同样功能的一个接口函数creatEncfile(byval   stroldfilename   as   string,   byval   strnewfilename   as   string)as   boolean  
  有哪位大侠对delphi和vb都懂的,麻烦转换一下。 问题点数:0、回复次数:16Top

1 楼yaven365(天涯网客)回复于 2004-12-01 12:45:18 得分 0

本来想帮忙的,但是一看挺麻烦的,vb也好久没用了  
   
  帮up一下吧Top

2 楼enxi(恩熙 @_@)回复于 2004-12-01 13:18:35 得分 0

帮帮忙啦,   yaven365(天涯网客)Top

3 楼enxi(恩熙 @_@)回复于 2004-12-01 13:21:28 得分 0

谁将这个功能做成delphi里的控件也好啊,这样我在vb里引用就可以了Top

4 楼dongge2000(目前叫西西了)回复于 2004-12-01 14:23:56 得分 0

UPTop

5 楼viena(维也纳N02)回复于 2004-12-01 14:29:06 得分 0

太麻烦了Top

6 楼ksaiy(阳光总在风雨后)回复于 2004-12-01 18:42:08 得分 0

代码太多了..............Top

7 楼zzlingaaa(小舟)回复于 2004-12-01 19:26:18 得分 0

汗!VB能用OO的代码么?Top

8 楼enxi(恩熙 @_@)回复于 2004-12-01 19:34:16 得分 0

求求各位了。分不够再加啊!Top

9 楼symk0014(莫克)回复于 2004-12-01 19:48:00 得分 0

begin和end在vb中用什么来着...好久没用VB了Top

10 楼wegotnothingtolosebu(t this is a dirty joke...)回复于 2004-12-01 20:13:13 得分 0

begin和end在vb中用什么来着...好久没用VB了  
   
   
  是{}吗?也好久没用VB了  
   
  Top

11 楼sosopro(随便写点)回复于 2004-12-01 21:25:55 得分 0

晕,死  
  VB哪有{}  
  比如一个函数  
  sub   Add(a,b)  
      //code  
  end   sub  
  还有,除非是vb.net否则VB没有继承Top

12 楼extcsdn(Studing VB now)回复于 2004-12-01 21:42:26 得分 0

upTop

13 楼symk0014(莫克)回复于 2004-12-01 21:52:02 得分 0

是忘了...Top

14 楼langziwujia007(※刑警队长※)回复于 2004-12-02 09:04:27 得分 0

我倒是懂点VB但是delphi是初学看不懂,对不起了楼主,帮你顶上去吧。Top

15 楼701701()回复于 2004-12-07 00:28:30 得分 0

上面的东西其实就是两个简单的加密和解密函数  
  可以直接写两个函数  
  我帮你写了其中一个  
   
    FUNCTION   SUBA   (Str   as   stirng)   as   string  
      dim   s   as   stirng  
      dim   n   as   long  
      for   I:=0   to   len(str)   -1    
            s=right(left(str,i),1)''取字符串的第n位字符  
            n=(asc(s)+   asc(Key))   mod   256  
            SUBA=SUBA+chr   (Encval)  
        next   I  
      end   function  
   
  还有一个同理,我就不写了    
   
  调用方法如果要对字符串s1加密则  
  s2=suba(s1)  
  Top

16 楼S.F.(chinasf.cnblogs.com)回复于 2004-12-07 01:23:48 得分 0

701707,你的函数考虑中文没有??:)_~~~Top

相关问题

  • VB代码转换成Delphi代码
  • 哪位帮我把这段vb代码转换成delphi的~谢谢
  • VB代码转Delphi
  • vb代码转换Delphi代码
  • *** VB =》Delphi 的代码转换?? ***
  • 如何将下面的VB代码转换成VB.NET代码
  • 怎样将WORD的VBA代码转换成VB代码,立刻结分!!!
  • 谁帮我把vb代码转换成c#代码,100分相送。在线等。
  • 有个 Sheriff 的ActiveX,请问如何把VB的代码转换成CBC代码
  • 怎样把下面的vb代码转换成c#代码,谢谢!

关键词

  • vb
  • 代码
  • 函数
  • delphi
  • penc
  • encval
  • suba
  • tencodedstream
  • longint
  • fkey

得分解答快速导航

  • 帖主:enxi

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo