码迷,mamicode.com
首页 > 其他好文 > 详细

查看内存数据的函数

时间:2016-03-02 23:43:10      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:

  1. unit Unit1;  
  2.   
  3. interface  
  4.   
  5. uses  
  6.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  
  7.   Dialogs, StdCtrls;  
  8.   
  9. type  
  10.   TForm1 = class(TForm)  
  11.     Button1: TButton;  
  12.     Button2: TButton;  
  13.     procedure Button1Click(Sender: TObject);  
  14.     procedure Button2Click(Sender: TObject);  
  15.   end;  
  16.   
  17. var  
  18.   Form1: TForm1;  
  19.   
  20. implementation  
  21.   
  22. {$R *.dfm}  
  23.   
  24. {用十六进制查看内存的函数; 参数1是内存起点, 参数2是以字节为单位的长度}  
  25. function ToHex(p: PByteArray; bit: Integer): string;  
  26. var  
  27.   i: Integer;  
  28. begin  
  29.   for i := 0 to bit - 1 do  
  30.     Result := IntToHex(p^[i], 2) + Chr(32) + Result;  
  31.   Result := TrimRight(Result);  
  32. end;  
  33.   
  34. {用二进制查看内存的函数; 参数1是内存起点, 参数2是以字节为单位的长度}  
  35. function ToBin(p: PByteArray; bit: Integer): string;  
  36. const  
  37.   Convert: array[‘0‘..‘F‘] of string = (  
  38.     ‘0000‘, ‘0001‘, ‘0010‘, ‘0011‘, ‘0100‘, ‘0101‘, ‘0110‘, ‘0111‘, ‘1000‘, ‘1001‘,  
  39.     ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘1010‘, ‘1011‘, ‘1100‘, ‘1101‘, ‘1110‘, ‘1111‘);  
  40. var  
  41.   i: Integer;  
  42.   s: string;  
  43. begin  
  44.   s := ToHex(p, bit);  
  45.   for i := 1 to Length(s) do  
  46.     if s[i] <> Chr(32) then  
  47.       Result := Result + Convert[s[i]]  
  48.     else  
  49.       Result := Result + Chr(32);  
  50. end;  
  51.   
  52. {测试一}  
  53. procedure TForm1.Button1Click(Sender: TObject);  
  54. var  
  55.   num: Integer;  
  56. begin  
  57.   Randomize;  
  58.   num := Random(MaxInt);  
  59.   ShowMessage(IntToStr(num) + #10#13#10#13 +  
  60.               ToHex(@num, 4) + #10#13#10#13 +  
  61.               ToBin(@num, 4));  
  62. end;  
  63.   
  64. {测试二}  
  65. procedure TForm1.Button2Click(Sender: TObject);  
  66. var  
  67.   str: string;  
  68. begin  
  69.   str := ‘Delphi 2010‘;  
  70.   ShowMessage(str + #10#13#10#13 +  
  71.               ToHex(@str[1], Length(str)*SizeOf(str[1])) + #10#13#10#13 +  
  72.               ToBin(@str[1], Length(str)*SizeOf(str[1])));  
  73. end;  
  74.   
  75. end.  

http://peirenlei.iteye.com/blog/548322

查看内存数据的函数

标签:

原文地址:http://www.cnblogs.com/findumars/p/5236714.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!