myarr:=(htpr1 as iMO_Manager).GetNowRCDataByMONumber('SFD59818-A')
s:=myarr[0].PART_NO//这里也只取了[0],就只是第一个值
ShowMessage(s)//这里肯定永远都只能是前面取的长度为1的数组的第一个值
不知道你GetNowRCDataByMONumber('SFD59818-A')返回的到底是个什么东西
很简单...假设你的数组变量为 a,并且下标从 0 开始:
var
a: YourArrayType
p: PInteger
begin
...
p := @a[1]//指向第二个字节
if p^ = $01000080 then // Intel 处理器的整数高位在高地址区,所以要反过来
...
end
原理就是:4个字节是一个整数的空间,直接比较一个整数变量和一个常数是否相等
如果你要判断的字节数超过8个,或者($80,$00,$00,$01)是变化的,这个方法就不行了,要用 CompareMem 来比较,速度要慢一些:
var
a: YourArrayType
b: YourConst
begin
...
if CompareMem(@a, @b, SizeOf(b)) then
...
end
delphi的数组定义是var
a : array [0..10] of integer
这样就可以定了一个数组a,要访问的话 a[1] :=2a[2]:=3这样去赋值
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)