program RemoveSublistProgram;
{$mode objfpc} // Enables object-oriented features // try
uses
Classes; // TList
procedure RemoveSublist(var items: TList; startIndex, endIndex: Integer);
var
i: Integer;
begin
for i := endIndex downto startIndex do
items.Delete(i);
end;
var
items: TList;
i: Integer;
begin
items := TList.Create;
try
// Fill the list with integers (casted as pointers)
for i := 1 to 10 do
items.Add(Pointer(i));
// Remove elements from index 2 to 4 (i.e., values 3, 4, 5)
RemoveSublist(items, 2, 4);
// Display updated list
Write('Updated list: ');
for i := 0 to items.Count - 1 do
Write(Integer(items[i]), ' ');
WriteLn;
finally
items.Free;
end;
end.
(*
run:
Updated list: 1 2 6 7 8 9 10
*)