删除数组中从X开始长度为N的元素

 

代码
procedure DeleteArray(var Buffer:Array of Integer;Position,Len:Integer);
var MoveStart,MoveLen:Integer;
begin
//检查是否越界
if Position<0 then
Raise Exception.Create(
'BOF.');
if Position>=Length(Buffer) then
Raise Exception.Create(
'EOF.');

if Position+Len<Length(Buffer) then begin
//如果把尾部的元素移动到前面
MoveStart:
=Position+Len;
MoveLen:
=Length(Buffer)+MoveStart;
Move(Buffer[MoveStart],Buffer[Position],MoveLen
*SizeOf(Integer));
//重设数组长度
SetLength(Position
+MoveLen);
end else
//如果计算得知尾部没有元素,直接设置数组长度
SetLength(Position);
end;

 

posted @ 2010-02-10 16:28  庄园  阅读(496)  评论(0编辑  收藏  举报