AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Datensatz einer typsierten datei löschen
Thema durchsuchen
Ansicht
Themen-Optionen

Datensatz einer typsierten datei löschen

Ein Thema von LkZ · begonnen am 12. Feb 2006 · letzter Beitrag vom 12. Feb 2006
Antwort Antwort
LkZ

Registriert seit: 26. Mai 2004
75 Beiträge
 
Delphi 6 Enterprise
 
#1

Datensatz einer typsierten datei löschen

  Alt 12. Feb 2006, 00:09
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
Immer probiern!
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Datensatz einer typsierten datei löschen

  Alt 12. Feb 2006, 01:02
Du könntest die Records in ein Array einlesen, alle bis auf, das, das gelöscht werden soll und dann das Array wieder abspeichern.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
gfjs

Registriert seit: 8. Dez 2005
Ort: Hohenkammer
298 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Datensatz einer typsierten datei löschen

  Alt 12. Feb 2006, 04:54
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
Mein neues Motto (von "Unbekannt"):
Gewinnen: Wenn Du kannst - Verlieren: Wenn Du musst - Aufgeben: NIE!
  Mit Zitat antworten Zitat
woki

Registriert seit: 29. Mär 2003
563 Beiträge
 
Delphi 2006 Architect
 
#4

Re: Datensatz einer typsierten datei löschen

  Alt 12. Feb 2006, 09:20
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
  Mit Zitat antworten Zitat
Antwort Antwort


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 09:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz