1

静的な「TPoint の配列」から特定のメンバーまたは要素を削除/削除したい。これを行う方法?

4

1 に答える 1

5

「静的」が「非動的」(つまり、固定サイズの配列) を意味する場合は、できません。できる最善の方法は、それを配列の最後に移動してから、後続のパスで無視できるような方法で最後の TPoint をマークすることです。

動的 (つまり、可変サイズの配列、つまりVAR A : ARRAY OF TPoint;) について話している場合は、次のルーチンを使用できます。

TYPE
  TPointArray = ARRAY OF TPoint;

PROCEDURE RemoveIndex(VAR ARR : TPointArray ; Index: INTEGER);
  VAR
    I : INTEGER;

  BEGIN
    IF (Index<LOW(Arr)) OR (Index>HIGH(Arr)) THEN EXIT;
    FOR I:=Index TO PRED(HIGH(ARR)) DO ARR[I]:=ARR[SUCC(I)];
    SetLength(ARR,PRED(LENGTH(ARR)))
  END;
于 2012-11-01T06:21:38.240 に答える