Dateisystem, Textdatei: Ab bestimmter Position LÖSCHEN
Klassmann
- php
Hallo zusammen,
folgende Frage. Ich habe eine Textdatei mit Datensätzen fester Länge. Jetzt möchte ich mit fseek den Dateizeiger positionieren, und aber eben dieser Position LÖSCHEN! Das Problem ist: ich weiss nicht wie. Mit Lerrzeichen auffüllen ist kein Problem. Allerdings wird das dann ja nicht gelöscht.
Kann mir einer auf die Sprünge helfen? Ich durchforste jetzt schon seit 2 Stunden meine PHP-Referenz :-(
Danke vielmals ;-)
Peter
hi,
Kann mir einer auf die Sprünge helfen? Ich durchforste jetzt schon seit 2 Stunden meine PHP-Referenz :-(
"rausnehmen" ist afaik nicht. Ich schaetze, Du musst das file in ein Array einlesen, damit das Ganze neuschreiben, und dabei die zu loeschenden Zeilen blocken.
hth + Gruss Joachim
Hi!
Ich bin zwar neu in PHP (aber nicht in anderen Programmiersprachen), aber ich habe in der Dokumentation folgendes gefunden:
int ftruncate ( int fp, int size)
Nimmt den Dateizeiger fp, und verkürzt die Datei auf die Länge size. Diese Funktion gibt bei Erfolg TRUE, ansonsten FALSE zurück.
Vielleicht hilfts.
Ciao
Stephan
Hallo Stephan,
int ftruncate ( int fp, int size)
Nimmt den Dateizeiger fp, und verkürzt die Datei auf die Länge size. Diese Funktion gibt bei Erfolg TRUE, ansonsten FALSE zurück.
ftruncate ist nicht schlecht. Leider hat es den Nachteil, dass ich immer nur den letzten/die letzten Eintrag/Einträge "abschneiden" kann. Jedoch keinen Datensatz in der Mitte Löschen kann.
Danke trotzdem für Deine Bemühung.
Gibt es noch andere Vorschläge?
Peter
Moin !
<?php
$f = file("datei.dat");
$fp=fopen("datei.dat", "w+");
for($i=0; $i<count($f); $i++)
{ if(BEDINGUNG, damit der Datensatz NICHT rausgenommen wird)
fwrite($fp, $f[$i]); }
fclose($fp);
?>