L
liangexcel
Unregistered / Unconfirmed
GUEST, unregistred user!
type
TData=packed record
case Integer of
0: (
IntData:Integer;
ExtData:array[0..2]of Byte );
1: ( Data:array[0..6]of Byte )
end;
var
m:integer;
i1,i2,i3,i4,i5,i6,i7:Byte;
pData:^TData;
pointer;
Frq,tx,ty,t,t0,t1,t2,t3:Int64;
str:string;
strList:Tstrings;
Const
iLength :integer =8347680 ;
begin
strList :=TstringList.Create;
try
QueryPerformanceFrequency(Frq);
QueryPerformanceCounter(tx);
p := GetMemory(iLength*sizeof(TData));
pData:= p;
for i1:=1 to 30 do
for i2:=i1+1 to 31 do
for i3:=i2+1 to 32 do
for i4:=i3+1 to 33 do
begin
m:=(i1 shl 24) or (i2 shl 16) or (i3 shl 8) or i4;
for i5:=i4+1 to 34 do
for i6:=i5+1 to 35 do
for i7:=i6+1 to 36 do
begin
with pData^ do
begin
IntData:=m
//一次写入前4个Byte
ExtData[0]:=i5;
ExtData[1]:=i6;
ExtData[2]:=i7;
end;
Inc(pData);
end;
end;
finally
freeMem(p, iLength*sizeof(TData));
strList.Free;
end;
原帖太长,所以截下了一部分.这个是别的高手使用指针的例子.按这个例子,得出的结果是一个记录型的指针数组.这种指针,是怎么使用的?就是pData值,假如这是一个函数,我想返回的就是这种记录型的数据,怎么把这个指针的值在这个函数完成后在别的过程仍然能用,不用后又能释放内存?
还有,这个指针是怎么定位的?例如我想取800-900之间的100条记录,怎么定位?
我知道这是一些基础的问题,但还是希望能得到你的帮助.
TData=packed record
case Integer of
0: (
IntData:Integer;
ExtData:array[0..2]of Byte );
1: ( Data:array[0..6]of Byte )
end;
var
m:integer;
i1,i2,i3,i4,i5,i6,i7:Byte;
pData:^TData;
pointer;
Frq,tx,ty,t,t0,t1,t2,t3:Int64;
str:string;
strList:Tstrings;
Const
iLength :integer =8347680 ;
begin
strList :=TstringList.Create;
try
QueryPerformanceFrequency(Frq);
QueryPerformanceCounter(tx);
p := GetMemory(iLength*sizeof(TData));
pData:= p;
for i1:=1 to 30 do
for i2:=i1+1 to 31 do
for i3:=i2+1 to 32 do
for i4:=i3+1 to 33 do
begin
m:=(i1 shl 24) or (i2 shl 16) or (i3 shl 8) or i4;
for i5:=i4+1 to 34 do
for i6:=i5+1 to 35 do
for i7:=i6+1 to 36 do
begin
with pData^ do
begin
IntData:=m
//一次写入前4个Byte
ExtData[0]:=i5;
ExtData[1]:=i6;
ExtData[2]:=i7;
end;
Inc(pData);
end;
end;
finally
freeMem(p, iLength*sizeof(TData));
strList.Free;
end;
原帖太长,所以截下了一部分.这个是别的高手使用指针的例子.按这个例子,得出的结果是一个记录型的指针数组.这种指针,是怎么使用的?就是pData值,假如这是一个函数,我想返回的就是这种记录型的数据,怎么把这个指针的值在这个函数完成后在别的过程仍然能用,不用后又能释放内存?
还有,这个指针是怎么定位的?例如我想取800-900之间的100条记录,怎么定位?
我知道这是一些基础的问题,但还是希望能得到你的帮助.