删除数组中从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;