Andreas: Dateizeiger setzen ?

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

  1. 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

    1. 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

      1. 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*

        1. 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*

          1. 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?]