查看内存数据的函数

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

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

时间: 2024-10-22 08:52:58

查看内存数据的函数的相关文章

ZeroMQ接口函数之 :zmq_send_const – 从一个socket上发送一个固定内存数据

ZeroMQ API 目录 :http://www.cnblogs.com/fengbohello/p/4230135.html ————————————————————————————————————— ZeroMQ 官方地址:http://api.zeromq.org/4-1:zmq-send-const zmq_send_const(3)           ØMQ Manual - ØMQ/4.1.0 Name zmq_send_const – 从一个socket上发送一个固定内存数据

Android中如何查看内存

文章参照自:http://stackoverflow.com/questions/2298208/how-to-discover-memory-usage-of-my-application-in-android#2299813 像Linux这种现代操作系统的内存使用是很复杂的,因此很难准确的知道你的应用程序使用了好多内存. 查看内存使用的方式有很多种,但是各个方式查看到的结果可能会有微略不同. 方式一,Running services 通过手机上Running services的Activit

【原创】用python把内存数据转为明文

接到一个很有意思的任务,给了我一串内存数据的文档,要把它转为看得懂的明文. 我们可以借助hex工具查看这些字符的16进制. int在内存里面是占4个字节,图中的0x64代表右边的字符d. 所以我们现在需要四个四个分组处理,总共有len(file)/4组,每一组对应着file里面字符的位置为[4*n:4*(n+1)].理清楚了这层关系就好做了,我们只需要用ord函数将字符转化为对应的ASCII数值.注意一个字节是8位,所以在高位向地位转化时要乘以256所以代码如下: dat=[] myfile=o

jstack(查看线程)、jmap(查看内存)和jstat(性能分析)命令

公司内部同事分享的一篇文章 周末看到一个用jstack查看死锁的例子.昨天晚上总结了一下jstack(查看线程).jmap(查看内存)和jstat(性能分析)命令.供大家参考 1.Jstack 1.1   jstack能得到运行java程序的java stack和native stack的信息.可以轻松得知当前线程的运行情况.如下图所示 注:这个和thread dump是同样的结果.但是thread dump是用kill -3 pid命令,还是服务器上面少用kill为妙 1.2   命名行格式

【C语言】 字符串的内存拷贝处理函数

这篇博文我主要是想写一下函数库中的memcpy函数, 对于字符串来说,我们运用字符串<string.h>中的str类别的函数,但是我们还有一些关于内存的拷贝函数.他们操作的对象是内存,然后可以接受任何类型的数据进行拷贝. 这个是<memory.h>里面的memcpy,然后我们一起查看一下MSDN看一看他的原型: void *memcpy(void *dest,const void *src,size_t count); 与strcpy不同的就是添加了第三个参数,确定操作的字节数,然

Android 查看内存

文章参照自:http://stackoverflow.com/questions/2298208/how-to-discover-memory-usage-of-my-application-in-android#2299813 像Linux这种现代操作系统的内存使用是很复杂的,因此很难准确的知道你的应用程序使用了好多内存. 查看内存使用的方式有很多种,但是各个方式查看到的结果可能会有微略不同. 方式一,Running services 通过手机上Running services的Activit

【Android】查看内存

[文章来源]http://blog.csdn.net/hudashi/article/details/7050897 查看内存使用的方式有很多种,但是各个方式查看到的结果可能会有微略不同. 方式一,Running services 通过手机上Running services的Activity查看,可以通过Setting->Applications->Running services进. 关于Running services的详细内容请参考<Android中使用"running

Android中如何查看内存(上)

文章参照自:http://stackoverflow.com/questions/2298208/how-to-discover-memory-usage-of-my-application-in-android#2299813 像Linux这种现代操作系统的内存使用是很复杂的,因此很难准确的知道你的应用程序使用了好多内存. 查看内存使用的方式有很多种,但是各个方式查看到的结果可能会有微略不同. 方式一,Running services 通过手机上Running services的Activit

经典的GDB调试命令,包括查看变量,查看内存

经典的GDB调试命令,包括查看变量,查看内存 在你调试程序时,当程序被停住时,你可以使用print命令(简写命令为p),或是同义命令inspect来查看当前程序的运行数据.print命令的格式是: print print / 是表达式,是你所调试的程序的语言的表达式(GDB可以调试多种编程语言),是输出的格式,比如,如果要把表达式按16进制的格式输出,那么就是/x. 一.表达式 print和许多GDB的命令一样,可以接受一个表达式,GDB会根据当前的程序运行的数据来计算这个表达式,既然是表达式,