Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - teildaten aus 'file of byte' entfernen ...
soulies - Di 13.12.05 11:23
Titel: teildaten aus 'file of byte' entfernen ...
hi,
folgendes problem:
ich hab ein 'file of byte' - mit read kann ich lesen, mit write schreiben - klar
aber wie kann ich etwas aus diesem file wieder löschen ?
bei strings kann man ja 'delete()' verwenden, aber in meinem fall weiß ich leider keinen rat.
ich hoffe ihr könnt es mir sagen
mfg
Stefan.Buchholtz - Di 13.12.05 11:31
Du kannst aus einer Datei nicht einfach in der Mitte ein Teil löschen. Du musst die Datei lesen und wieder schreiben, wobei du den zu entfernenden Teil weglässt. Wenn die Datei klein genug ist, um komplett in den Speicher zu passen, kannst du sie ganz einlesen und wieder wegschreiben, ansonsten musst du mit einer temporären Datei arbeiten. Ich würde für sowas übrigens einen TFileStream statt ein file of byte verwenden.
Stefan
Gausi - Di 13.12.05 11:33
Das muss man wohl per Hand machen. Also alle nachfolgenden Bytes um entsprechend viele Stellen nach vorne schieben. Einen Befehl dafür gibt es afaik nicht.
Wenn die Datei größer ist, und man nur Kleinigkeiten löschen möchte, kann man ggf. auch die zu löschenden Bytes einfach mit 0 überschreiben.
Vorteil: Es geht wesentlich schneller.
Nachteil: Die Datei wird dadurch nicht kleiner und eventuell wird dadurch die Datei derart geschädigt, dass sie später nicht mehr gelesen werden kann - das kommt aber ganz auf den Dateityp an.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!