![]() |
Datensatz einer typsierten datei löschen
hi leute,
wollt euch ma fragen, ob es eine funktion gibt, die einen record-datensatz einer typisierten datei löscht. hab viel gesucht, aber leider nix gefunden. gibt es so eine funktio überhaupt?? mfg |
Re: Datensatz einer typsierten datei löschen
Du könntest die Records in ein Array einlesen, alle bis auf, das, das gelöscht werden soll und dann das Array wieder abspeichern.
|
Re: Datensatz einer typsierten datei löschen
Du könntest eine temporäre Datei anlegen und in diese Datei die nicht zu löschenden Datensätze schreiben, dann die erste Datei löschen und die temporäre Datei umbenennen.
Ich würde es so machen: Entweder in den Record ein zusätzliches Boolean-Feld für gelöscht einfügen oder beim Löschen ein Feld auf einen Wert setzen, der sicher NICHT auftritt (z.B. '' in einem Stringfeld oder -1 in einem Feld, in dem sonst nur positive Werte stehen). Nachdem vermutlich nicht nur einmal ein Datensatz gelöscht werden soll, würde ich mir für's Löschen eine Prozedur schreiben. Je nach Bedarf kann dann die Prozedur bei jedem Löschvorgang oder einmalig beim Verlassen des Formulars aufgerufen werden. Für zwischenzeitliches Lesen der Datei: if not Record.geloescht oder if Record.Feld <> '' o.ä. mfg gfjs |
Re: Datensatz einer typsierten datei löschen
Hallo,
der übliche und beste Weg, zumindest bei größeren Dateien, wäre wohl, die Datensätze als gelöscht markieren, aber erstmal nicht entfernen. Die "Löcher" werden dann von neuen Datensätzen wieder belegt. Wenn die Anzahl der Löcher einen Grenzwert überschreitet, wird eine Garbage Collection durchgeführt. Die Vorgehensweise kann dabei so sein wie ober beschrieben, oder es werden halt Datensätze vom Ende der Datei genommen, und in die Löcher gestopft. Bei sehr großen Dateien ist das performanter. Grüüsse Woki |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:18 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