Dirk: Dateizeiger an Beginn der x-ten Zeile positionieren

Hallo,

ist es möglich, den Dateizeiger an den Beginn der x-ten Zeile einer zuvor geöffneten Datei zu setzen? Oder ist es sonstwie möglich, nur eine bestimmte Zeile in einen Skalar einzulesen? Da es sich um eine sehr große Datei handelt (kann bis zu ca. 300MB betragen), möchte ich sie nicht erst, wie ich es sonst eigentlich immer mache, erst in einen Array einlesen, um dann mit $Array[x-1] Zugriff auf die Zeile zu haben.

Gruß, Dirk

  1. Hallo Dirk,

    ist es möglich, den Dateizeiger an den Beginn der x-ten Zeile einer zuvor geöffneten Datei zu setzen?

    Nur wenn alle Zeilen gleich lang sind.

    Oder ist es sonstwie möglich, nur eine bestimmte Zeile in einen Skalar einzulesen?

    Ja klar:
    Du liest Zeile für Zeile in den gleichen Skalar.
    Wenn Du die gewünschte Zeile erreicht hast,
    verarbeitest Du diese eine Zeile weiter.

    Da es sich um eine sehr große Datei handelt (kann bis zu ca. 300MB betragen), möchte ich sie nicht erst, wie ich es sonst eigentlich immer mache, erst in einen Array einlesen, um dann mit $Array[x-1] Zugriff auf die Zeile zu haben.

    Das käme nicht so gut.

    Freundliche Grüsse,

    Vinzenz

    1. Hallo Vinzenz,

      Nur wenn alle Zeilen gleich lang sind.

      Nein, leider nicht. Daran hatte ich auch schon gedacht.

      Du liest Zeile für Zeile in den gleichen Skalar.
      Wenn Du die gewünschte Zeile erreicht hast,
      verarbeitest Du diese eine Zeile weiter.

      Stimmt, hätte ich auch drauf kommen können. Wird zwar die Laufzeit etwas erhöhen, aber das spielt hier keine Rolle.

      Danke,

      Dirk