function Rword1(add:DWORD):byte;
begin
try
Result := Pbyte(add)^;
except
Result := 0;
end;
end; 这样可以读取指定地址的1字节数据
那怎么才能写入1字节数据呢?还有怎么可以读取内存里的字符串,比如说我内存里的信息是 "ABC哦" 我怎么才能把他完整的度读出来,还有一点就是怎么才能只读出A来也就是只读取内存里的从1到几个字节.,谢谢.
begin
try
Result := Pbyte(add)^;
except
Result := 0;
end;
end; 这样可以读取指定地址的1字节数据
那怎么才能写入1字节数据呢?还有怎么可以读取内存里的字符串,比如说我内存里的信息是 "ABC哦" 我怎么才能把他完整的度读出来,还有一点就是怎么才能只读出A来也就是只读取内存里的从1到几个字节.,谢谢.
解决方案 »
- delphi 画布问题
- 无语!!!....(标提太短........这个提示.噎死人....................................)
- copyfile的问题!弄了一下午了,帮忙看看,在线等!
- [Warning] tproductlist.pas(533): Variable 'tempstream' might not have been initialized這個問題怎麼解決??在線等,急!!急!!
- 一个StringGrid的焦点的问题
- 怎么样将.wav扩展名的语音文件转化成clp扩展名?
- 请问如何在delphi7中将real或double型变量转化成字符串?
- 请教在Delphi 6下使用EhLib 3.0的DBGridEh遇到的几个问题。
- 如何实现两个TImage控件Picture的互换!
- 关于左右分栏打印,请教QuickRep高手! 急急急!
- 第一次采用多线程编程,碰到问题,请教下大家
- 求一行代码
begin
Pbyte(add)^:=1;
end;
procedure writeaddrvalue (addr: longword; value: byte);
begin
PByte (addr)^ := value;
end;function readchar (const str: string; index: integer): char;
begin
if index < length(str) then
result := str[index+1]
else
result := #0;
end;
PByte(Add)^=10;字符串以也一样,Delphi中的String类型的数据,大部分其字符串变量保存的是字符串的首地址(因为Delphi采用了copy on write技术,所以字符串在没有被改写之前就强制类型转换去读写,可能会意外破坏数据)。如果你要读取一个字符串的某个字符,可以这么读:
s: String;
...
s := 'ABC哦';ShowMessage(s[1]);
或者
ShowMessage(PChar(s)^);写入也类似
s[1] := 'O';
或
PChar(s)^ := 'O';如果你要修改字符串某个位置的字符,只要不越界,可以直接读写,例如
s[3] := 'K';
或
PChar(Integer(Pointer(s)) + 2)^ := 'K';
需要注意的是,采用下标的方式访问字符串,是从1开始的,而采用PChar方式,则是从0开始使用Copy或者move函数可以复制字符串中某个或某几个连续的字符,区别在于形式上Copy用来复制字符串而move可以进行两个地址之间的对拷,也就是从一个地址上将内容复制到另一个地址空间中。