Mailinglisten-Archive |
On Friday 20 February 2004 15:08, Thomas Richter wrote: > >Da ich eine Kopie in die Datei geschrieben habe, hat das letzte Byte X den > >Wert des letzten Bytes des Originals. > >Ich kann es nun mit einem NULL Byte überschreiben, würde aber gerne das > > Byte freigeben. D.h., dass es nicht mehr der Datei gehört > > sorry... meines wissens gibt es diese loesung nicht, duie du > anstrebst... auch NULL sind daten... und deswegen kann die datei nicht > einfach kleiner werden... und meines wissens gab es zu dos zeiten die > moeglichkeit explizit ein byte in eine datei zu schreiben, und dann > wurde dieses als EOF angesehn... aber plattenspeicher hat dies auch > nicht freigegeben, da nur die leseroutinen ab diesem byte abgebrochen > haben.... > > ich denke sogar, dass heute unter windows & linux sollte EOF marker > nicht mehr existieren... Es muss aber einen geben. Denn, wenn PHP oder was auch immer eine Datei ausliest, muss es doch erkennen, wo EOF ist. Auf der ganz niederen Ebene also, muss es ein Byte (bzw. Byteabfolge) geben, welches die einzige Aufgabe hat, ein EOF zu markieren. Ich vermute hier das ASCII Steuerzeichen 0x18 "FS = file separator". (Entspricht der Bitfolge 00011000) Ich werde es nachher versuchen, aber vielleicht kann mir jemand sagen, dass ich mich auf dem Holzweg befinde ;-) . > > einzige moeglichkeit die mir in den kopf kommt: > > nachdem du die datei geschrieben hast. diese lesen oeffnen und ausser > den letzten datensatz in eine neue temporaere datei kopieren und dann > diese temporaere datei in das orginal umbenennen... > Ich wollte sowas gerade vermeiden, um Resourcen zu schonen. P.S. In der Betreffzeile hat sich ein Fehler eingeschlichen. 034 bezieht sich auf den Oktalwert. -- MfG Martin Rozmus martinrozmus at freenet.de
php::bar PHP Wiki - Listenarchive