Einzelnen Beitrag anzeigen

Benutzerbild von Leuselator
Leuselator

Registriert seit: 18. Mär 2003
Ort: Berlin
589 Beiträge
 
Delphi 8 Architect
 
#3

Re: CD-Datenbank - Array, aus dem man löschen kann..

  Alt 1. Feb 2004, 23:48
Ich denke, das 2. Array ist entbehrlich:
Delphi-Quellcode:
type
  DeinTyp = Array of tEintrag;

var
  DeinArray : DeinTyp;

procedure InsertEintrag(DerEintrag : tEintrag; Index : Integer = -1);
var i : Integer;
begin
  if (Index >= 0) and (Index < Length(DeinArray)) // Index ist irgendwo VOR dem neuen
                                                   // Ende des Arrays...
  then begin
    SetLength(DeinArray,Length(DeinArray)+1); // Array vergrößern
    for i := Index+1 to High(DeinArray)
      do DeinArray[i] := DeinArray[i-1]; // Alle Items von Index bis Ende verschieben...
    DeinArray[Index] := DerEintrag; // und den Eintrag an gewünschte Stelle schreiben.

  end else begin // kein Index angegeben - also Add am Ende
    AddEintrag(DerEintrag) // siehe Procedure AddEintrag...
  end;
end;

procedure AddEintrag(DerEintrag : tEintrag);
begin
  SetLength(DeinArray,Length(DeinArray)+1); // Array vergrößern
  DeinArray[High(DeinArray)] := DerEintrag; // Eintrag ans Ende schreiben - fertig!
end;

procedure DeleteEintrag(Index : Integer);
var i : Integer;
begin
  if (Index >= 0) and (Index < Length(DeinArray))
  then begin
    for i := Index+1 to High(DeinArray)
      do DeinArray[i-1] := DeinArray[i]; // umkopieren

    SetLength(DeinArray,Length(DeinArray)-1); // anschließend Array
                                              // verkleinern - fertig.

  end else raise Exception.Create('Ungültiger Index!'#13#10+
                                  'Minimum = 0'#13#10+
                                  'Maximum = '+InToStr(High(DeinArray))+#13#10+
                                  'Fehlerhafter Wert = '+IntToStr(Index)+' !');
end;

procedure ClearDeinArray;
var i : Integer;
begin
  SetLength(DeinArray,0); // Länge auf Null setzen - fertig!
end;
hoffe, das hülfet Dir, dynamische Arrays zu verstehen...
Gruß
Tim Leuschner
Programmierer = moderner Sysiphos: stets wenn er meint, den Stein seiner Dummheit auf den Berg des Wissens gewuchtet zu haben, erblickt er einen völlig neuen Aspekt und der Dummfels poltert mit Getöse zurück ins Tal der Unwissenheit...
  Mit Zitat antworten Zitat