Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
Delphi XE3 Enterprise
|
AW: Werte aus dynamischen array löschen
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)
|