Dateizeiger setzen ?
Andreas
- php
Hallo,
ich habe nur ein kleines Problem:
Wie setze ich den Zeiger in einer Textdatei in eine bestimmt Zeile?
In der Textdatei stehen in den ersten 7 Zeilen Werte. nun will ich mit einem einderen Formular weitere Werte ab Zeile 8 hinzufügen.
MfG. Andreas
Hallo,
ich habe nur ein kleines Problem:
Wie setze ich den Zeiger in einer Textdatei in eine bestimmt Zeile?
In der Textdatei stehen in den ersten 7 Zeilen Werte. nun will ich mit einem einderen Formular weitere Werte ab Zeile 8 hinzufügen.
wenn ich dich richtig verstehe, willst du am ende der datei neuen text einfügen?
dann verwende statt des obligatorisch $fp = fopen($loc,w) folgendes:
$fp = fopen($loc,a);
(wichtig hier ist das a, denn er setzt den dateizeiger of "eof" (end of file, also da, wo er hinsoll)
MfG. Andreas
Fabian
Hallo,
das scheint nicht die richtige Lösung zu sein da ich so die Datein nicht updaten kann.
Es würde doch jedesmal die Datein erneut an das Ende geschrieben. Die Daten sollen immer ab Zeile 8 stehen!
MfG. Andreas
Hallo,
nabend
das scheint nicht die richtige Lösung zu sein da ich so die Datein nicht updaten kann.
Es würde doch jedesmal die Datein erneut an das Ende geschrieben. Die Daten sollen immer ab Zeile 8 stehen!
wenn du _immer_ in zeile acht schreiben willst, so empfehle ich ein anderes verfahren:
$file = file($loc);
$datei_inhalt = $file[0].$file[1].$file[2].$file[3].$file[4].$file[5].$file[6].$file[7]."\n";
$neuvars (sprich das, was ab zeile acht rein soll...);
$datei = $datei.$neuvars;
dann noch in die datei schreiben, ab position null und fertig!
MfG. Andreas
Fabian *gähn*
n´abend
also muß ich letztendlich doch die ganze Datei neu schreiben lassen!?
ok, trotzdem Dake für die hilfe!
Andreas
Hallo,
nabend
das scheint nicht die richtige Lösung zu sein da ich so die Datein nicht updaten kann.
Es würde doch jedesmal die Datein erneut an das Ende geschrieben. Die Daten sollen immer ab Zeile 8 stehen!
wenn du _immer_ in zeile acht schreiben willst, so empfehle ich ein anderes verfahren:
$file = file($loc);
$datei_inhalt = $file[0].$file[1].$file[2].$file[3].$file[4].$file[5].$file[6].$file[7]."\n";
$neuvars (sprich das, was ab zeile acht rein soll...);
$datei = $datei.$neuvars;
dann noch in die datei schreiben, ab position null und fertig!
MfG. Andreas
Fabian *gähn*
n´abend
dito
also muß ich letztendlich doch die ganze Datei neu schreiben lassen!?
ja, allerdings fällt mir noch was ein: du könntest, wenn du genau wüsstest, wie lang der teil _vor_ zeile 8 ist, den dateizeiger darauf positionieren und gleich das neue zeugs schreiben. allerdings geht das nur, wenn du es wirklich weißt, aber das ist wohl in den wenigsten fällen so.
wenn doch, dann riecht das nach _zwei_ dateien...
ok, trotzdem Dake für die hilfe!
gerne
Andreas
Fabian
[FOTU gelöscht, du erlaubst?]