可有现成函数?(20分)

A

a1b1c1

Unregistered / Unconfirmed
GUEST, unregistred user!
从指针内容的第三个字节开始拷贝,到第六个结束,
不可将指针进行类型转换。
例如
(Buffer^,3,3(或6)=目标
目标为Pchar, Array ,或Pointer.
 
procedure TForm1.Button1Click(Sender: TObject);
var
P: ^Integer;
S: Integer;
begin
S := 1234567890;
P := @S;
showmessage(Copy(IntToStr(P^), 3, 6));
end;
 
TO wwr74 :
谢谢,但你没有看懂我的意思,'
inttostr(P^),事实上你已转换了指针类型。
看下例
p的空间足够。
P^[4]=0x10;其余P^[?]=0x00;

如何将P^[4]-P^[7]读出为integer(32 bit)=16?
 
用move
var
p:pchar;
a:array[1..8]of char;
begin
p:='12334567890';
move(p[3],a[1],7);
showmessage(pchar(@a));

end;
 
同意Highpeak
 
用move函数
 
感谢各位。其实,你们还是没有看懂我的意思,我是说不能进行类型转换!
Highpeak:你的方法只能对Pchar型有用,对于Pointer来说是行不通的,你不妨试试。
---------------------------------------------------------------------------
问题我已解决,多谢各位。
 
自己解决了问题也不说说,难道等到下个人问的时候才再出来取分么?呵呵,有点共享精神好不好,你来这里就是在共享别人的知识~~~
 
MoveMemory 不就可以了么?
其实楼上的方法,根本就没有类型转换。
 

Similar threads

S
回复
0
查看
955
SUNSTONE的Delphi笔记
S
S
回复
0
查看
776
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
顶部