Einzelnen Beitrag anzeigen

Codix32

Registriert seit: 23. Apr 2009
137 Beiträge
 
Delphi 2005 Personal
 
#16

AW: Arrays doppelte einträge eliminieren

  Alt 21. Dez 2014, 00:44
Hier meine zusammengeschusterte Routine. Die funktioniert perfekt:

Delphi-Quellcode:
Type
 TSXArray = array of shortint;

...
...
var
 SXArray:TSXArray;
....
....
procedure TForm1.entfernedoppelteWerte(myarray:TSXARRAY);
var
  i:integer;
begin
 for i :=high(MyArray) downto 0 do
  begin
   if MyArray[i-1] = MyArray[i] then
      loescheArray(SXArray,i);
  end;

procedure TForm1.loescheArray(var A:TSXArray;Aindex:Integer);
begin
   Move(A[AIndex + 1], A[AIndex], SizeOf(A[0]) * (Length(A) - AIndex - 1));
   SetLength(A, Length(A) - 1); // Länge kürzen
end;
Die Routine geht mit oder ohne Sortierung.

Geändert von Codix32 (21. Dez 2014 um 00:46 Uhr)
  Mit Zitat antworten Zitat