Einzelnen Beitrag anzeigen

Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#9

AW: Werte aus dynamischen array löschen

  Alt 20. Jun 2013, 07:18
versuch es mal mit einem Array von 0 bis 9 und der Bedingung
if ((aArray[readPos]))=5 then Mit einem kleinen Umbau sollte es funktionieren

Delphi-Quellcode:
var
  aArray: array of Integer;
  i, writePos, readPos, retained: Integer;

  Function Condition(i: Integer): Boolean;
  begin
    //Result := (i and 1)=0 ;
    Result := i in [0, 3, 7];
  end;

begin
  writePos := 0;
  retained := 0;

  setlength(aArray, 10);
  For i := 0 to 9 do
    aArray[i] := i;

  retained := Length(aArray);
  for readPos := 0 to Length(aArray) - 1 do
  begin
    if Condition(aArray[readPos]) then
    begin
      dec(retained);
      dec(writePos);
    end
    else
      aArray[writePos] := aArray[readPos];
    inc(writePos);
  end;
  setlength(aArray, retained);
end;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)

Geändert von Bummi (20. Jun 2013 um 07:45 Uhr)
  Mit Zitat antworten Zitat