Im Allgemeinen bedeutet das Entfernen eines Elements aus der Mitte der Datei das Neuschreiben aller Einträge nach dem Eintrag, um das belegte Feld zu verwenden.
Einige Dinge markieren stattdessen Elemente, die mit einem ungültigen Wert gelöscht werden, um zu erkennen, dass der Steckplatz nicht belegt ist. In der Regel werden gelöschte Slots nicht erneut verwendet, da dies mehr Management ist, als Sie sich vielleicht vorstellen, und im Grunde genommen eine Heap-ähnliche Architektur in einer Datei implementiert. Sie benötigen einen separaten "Kompaktierungs" -Schritt, um diesen Totraum später zu entfernen. Microsoft Jet (wie in Access) hat so funktioniert.
Es gibt eine sehr coole Optimierung, die in einigen Fällen anwendbar ist:
Wenn die Zeilen sind ungeordnet, und gleich lang, können Sie den gewünschten Eintrag überschrieben mit dem letzten Eintrag ‚Löschen‘, und die Datei gestutzt.
Wenn die Zeilen ungeordnet aber keine feste Länge sind, können Sie eine kompliziertere Variante dieses Ansatzes verwenden, bei der Sie einen Eintrag aus der Nähe des Endes verschieben, das die gleiche Länge wie das zu entfernende Element hat mische so wenig wie möglich ein.
Sind die Linien immer gleich lang? –