飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3737|回复: 3

delphi注册机在Ord错误解决思路

[复制链接]
  • TA的每日心情
    无聊
    2017-5-31 13:17
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2010-12-20 10:15:16 | 显示全部楼层 |阅读模式
    本帖最后由 cjteam 于 2010-12-20 11:32 编辑

    首先我们来看看注册机的代码.
    1. function dz(s:string):string;
    2. var
    3. i:integer;
    4.   begin
    5.    for i:=1 to length(s) do
    6.     result:=s+result;
    7.   end;
    8. procedure TForm1.Edit1Change(Sender: TObject);
    9. var
    10. i:integer;
    11. a:string;
    12. begin
    13. for i:= 1 to length(edit1.Text) do
    14.     a:=a+inttohex(ord(edit1.text),2);
    15. edit2.Text:='JXCw-'+copy(dz(a),1,4)+'268d5-'+copy(dz(a),5,4);
    16. end;
    复制代码
    --------------------------------------------------------
    使用这个代码是怎么也编译不了,提示错误Incompatible types,中文为不兼容的类型。

    就这句 a:=a+inttohex(ord(edit1.text),2); 在Delphi7下过不去,查找资料,原来是Delphi7 的ord()函数只能给字符,也就是char型.

    引用原文的话:在翻译vb的程序时,发现一个以前认为是正确的现在看来并不是那么回事的现象,就是 vb里的mid()函数和Delphi理的copy 并不是一回事,即mid(s,1,1)也不等于copy(s,1,1),很简单,MSDN描述的mid是从字符串中返回指定数目的字符。也就是返回的char型,而copy返回的string型。

    原理:ord接受的类型是char,而我们的编辑框内容是字符串,显然不匹配了。

    其实这个是原写注册机的笔误,下面提供修正的代码:
    1. function dz(s:string):string;
    2. var
    3. i:integer;
    4.   begin
    5.    for i:=1 to length(s) do
    6.     result:=s+result;
    7.   end;

    8. procedure TForm1.Edit1Change(Sender: TObject);
    9. var
    10. i:integer;
    11. a:string;
    12. begin
    13. for i:=1 to length(edit1.text) do
    14.     a:=a+inttohex(ord(edit1.text[i]),2);
    15. edit2.Text:='JXCw-'+copy(dz(a),1,4)+'268d5-'+copy(dz(a),5,4);
    16. end;
    复制代码
    参考链接:http://www.hackline.net/a/school/ymbc/delphi/2010/0603/4280.html
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2019-3-12 17:25
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2010-12-20 18:57:54 | 显示全部楼层
    顶你的帖子!
    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2017-5-31 13:17
  • 签到天数: 5 天

    [LV.2]偶尔看看I

     楼主| 发表于 2010-12-20 19:36:52 | 显示全部楼层
    顶你的帖子!
    whypro 发表于 2010-12-20 18:57



        :loveliness: 大牛太客气了哈
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2010-12-22 14:10:22 | 显示全部楼层
    顶你,现在用delphi的人越来越少了!!!
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表