![]() |
Datensatz aus einer Typisierten Datei löschen
Hallo,
wie kann ich einen Datensatz aus einer Typisierten Datei löschen? :wiejetzt: |
Re: Datensatz aus einer Typisierten Datei löschen
IUch nehme an du hast ein dynamisches Array von deinem Record. Kopier den letzten Datensatz an die Stelle, des zu löschenden und verkürz dein Arry um eins.
Desweiteren ist es Object pascal Frage und dahin geht die Reise jetzt auch. |
Re: Datensatz aus einer Typisierten Datei löschen
Hallo gerritlober,
du kannst einen Satz nicht direkt löschen. Du kannst nur eine neue Datei erstellen und den zu löschenden Satz debei weglassen. Eleganter ist aber ein Löschkennzeichen mitzuführen und den Satz dann später ggf. zu überschreiben. |
Re: Datensatz aus einer Typisierten Datei löschen
Und Wie mache ich das nun mit dem Löschkennzeichen,
wie führe ich das mit und wie entferne ich dann endgültig den Datensatz? Am besten wäre glaube ich ein Source-Code. In 7 Tagen ist Weihnachten Ich schreibe eine Datei mit einem Record-Typ. Nebenbei gesagt. :pale: |
Re: Datensatz aus einer Typisierten Datei löschen
In dem du einfach noch ein Boolean Feld in dein Record einfügst, der den Datensatz als gelöscht oder nicht gelöscht kennzeichnet. Löschen dann wie MrSpock oder ich vorgeschlagen haben.
|
Re: Datensatz aus einer Typisierten Datei löschen
Hallo!
Das Erstellen einer neuen Datei ist nicht nötig! Man kann auch alle folgenden Datensätze um 1 hochrutschen lassen und die Datei dann verkürzen. Der Aufwand ist abhängig von der Position des Datensatzes: weit vorne bedeutet Kopieren der Datei weniger Positionierungsaufwand, weit hinten ist das "nach vorne holen" schneller, weil nur die folgenden Datensätze bearbeitet werden müssen. Aus diesem Grund arbeiten Datenbanken ja auch mit einer "Gelöscht"-Kennzeichnung und benutzen beim Neuanlegen den ersten freien Datensatz. Eine Löschkennzeichnung kann auch über eine irgendwie ungültige Datenzusammenstellung erfolgen - bei einer Adressliste z.B. Leerstring beim Namen. Gruß Dietmar Brüggendiek |
Re: Datensatz aus einer Typisierten Datei löschen
So sieht die Lösung unter Turbo-Pascal 7.0 aus (denke, dass dies bei Object Pascal auch noch ein wenig funzen sollte (zumind. bis Delphi 7) :mrgreen: ):
Delphi-Quellcode:
Gruss, Tool-Box :wink:
Procedure Datensatz_Spiel_77_loeschen;
begin Anz := Filesize(f_2)-1; If Anz > 0 then begin For i2 := i0 to Anz - 1 do begin Seek(f_2, i2+1); Read(f_2, Spiel_77); Seek(f_2, i2); Write(f_2, Spiel_77); end; i2 := Anz; Seek(f_2, i2); Truncate(f_2); Anz := Filesize(f_2)-1; If i0 > Anz then i0 := i2 - 1; Seek(f_2, i0); Read(f_2, Spiel_77); Daten_Spiel_77_sichten; GotoXY(22,23); Write('Selektierter Datensatz wurde gel”scht ! '); GotoXY(22,23); end; end; |
Re: Datensatz aus einer Typisierten Datei löschen
Zitat:
BTW auf meiner Seite findest du eine Klasse, die dir das ganze Handling ab nimmt bei den Downloads: TTypeedFilesClass oder so ähnlich. |
Re: Datensatz aus einer Typisierten Datei löschen
Hallo!
Zitat:
Beispiel wäre eine Terminverwaltung, bei der der Benutzer Termine löschen kann. Beim Einfügen müßte dann übrigens alles Weitere nach unten kopiert werden. Gruß Dietmar Brüggendiek |
Re: Datensatz aus einer Typisierten Datei löschen
Wenn man einen performanten Sortieralgorithmus hat... Aber wie gesagt, es wäre auch nur eine weitere Möglichkeit.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:40 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-2025 by Thomas Breitkreuz