发信人: fishy(死鱼)
整理人: winsy(2003-03-06 08:57:44), 站内信件
|
【 在 huangs_07 的大作中提到:】
:在VB中怎样删除数组中的某一个值?谢谢!
:......
只能把数组元素往前移,不过时间开销很大,为了解决时间问题,可以使用一个没有公开的API,声明如下:
Private Declare Sub RtlMoveMemory Lib "KERNEL32" (hpvDest As Any, hpvSource As Any, ByVal cbCopy As Long)
(关于此API函数的详细介绍可以参考精华区“API函数”目录下的第36篇文章)
由于数组使用的是连续的内存地址,因此对于一个数组A(1 to N),如果要删除其中第M个元素,可以:
RtlMoveMemory (A(M), A(M+1), Len(A(N))*(N-M))
A(N) = 0
---- 闲人一个
闲鱼一条 |
|