AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi CD-Datenbank - Array, aus dem man löschen kann..
Thema durchsuchen
Ansicht
Themen-Optionen

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

Ein Thema von absentsilence · begonnen am 1. Feb 2004 · letzter Beitrag vom 2. Feb 2004
 
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
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz