注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

鑫淼梦园的博客

圆你的梦想 从这里开始

 
 
 

日志

 
 

delphi ord函数的应用  

2015-06-07 10:34:56|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

今天写个东西,用 Delphi 2010 正常编译,但是在Delphi7下过不去了,看下面的这个function

 

  1. function LC_Encrypt(const s:string):string;  
  2. var  
  3. str : string;  
  4. i:integer;  
  5. begin  
  6. str:='';  
  7. for I :1 to length(s) do  
  8. begin  
  9. str:Copy(s, i, 2);  
  10. result:= result + Chr(ord(str) + i) ;  
  11. end;  
  12. end; 

就这句 result:= result + Chr(ord(str) + i) ; 在Delphi2010下正常编译,在Delphi7下过不去,

后来再群里讨论了下,原来是Delphi7 的ord()函数只能给字符,也就是char型,而在2010下ord()可以接受字符串了。上面的代码改良下如下:
 

  1. function LC_Encrypt(const s:string):string;  
  2. var  
  3. str :char;  
  4. i:integer;  
  5. begin  
  6.  
  7. for I :1 to length(s) do  
  8. begin  
  9. str:= s[i];  
  10. result:= result + Chr(ord(str) + i) ;  
  11. end;  
  12. end;  


这样在d7和2010下都可通过。并且结果正常。 在翻译vb的程序时,发现一个以前认为是正确的现在看来并不是那么回事的现象,就是 vb里的mid()函数和Delphi理的copy 并不是一回事,即mid(s,1,1)也不等于copy(s,1,1),很简单,MSDN描述的mid是从字符串中返回指定数目的字符。也就是返回的char型,而copy返回的string型。

  评论这张
 
阅读(247)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017