azok: ausgabe ab einer menge eines best. zeichens beginnen

hi!

Ich habe folgendes Problem: Ich schreibe gerade an einer Blätterfunktion. Während des Durchdenkens selbiger, bin ich gerade auf die Frage gestoßen, wie ich eigentlich ab einem bestimmten Zeichen bis zu einem nächsten bestimmten Zeichen meine Daten aus einer .dat Datei ausgeben kann. Also z.B. vom Anfang der Datei die ersten 10 Zeilen (also die ersten 10 \n's). (damit ich überhaupt Datensätze später über eine for-schleife ausgeben kann). - Also, die erste Ausgabe dürfte kein Problem sein: for($i=1; $i<=10; $i++) {} - wie geht es da aber dann weiter? Also dass ich bspw. vom Beitrag 11 aus weiterzählen kann?

würde mich über Hilfe freuen (da das eigentlich eine der letzten Funktionen meines Weblogs ist, mit dem ich dann bald fertig bin)

lg
azok

--
Murphys Law: "Alles Schöne im Leben ist entweder illegal, ungesetzlich oder es macht dick."
Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:( n4:° ss:| de:] js:| ch:( sh:) mo:) zu:)
  1. Hello,

    wenn es sich nur um beliebige Zeichen handelt, ist das einfach.
    Die Funktion fseek() hilft dabei.

    Wenn es sich aber um Sätze (im Sinne von grammatikalischen S.) handelt, muss man schon einen schlauen Algorithmus schreiben. Man will ja weder mitten im Wort und möglichst auch erst am Satzende auf die nächste Seite umblättern. Da muss man dann mit einem Karenz-Buffer arbeiten, also die Stückelung überlappend durchführen.

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    1. hi!

      mir geht es in erster linie um die zeilen zahl. also von zeile 1 - 10 11-20 etc... (bei mir ist jeder datensatz durch ein "\n" von einander getrennt :))

      lg
      azok

      --
      Murphys Law: "Alles Schöne im Leben ist entweder illegal, ungesetzlich oder es macht dick."
      Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:( n4:° ss:| de:] js:| ch:( sh:) mo:) zu:)
      1. Hello,

        mir geht es in erster linie um die zeilen zahl. also von zeile 1 - 10 11-20 etc... (bei mir ist jeder datensatz durch ein "\n" von einander getrennt :))

        Da kannst Du doch sicher bestens
        http://selfhtml.bitworks.de/artikel_locking/show_visitors.php
        verwenden. Du musst Doch nur die Funktion, die die Datensätze beschafft, gegen eine andere austauschen und die Anzeigefunktion anpassen.

        Harzliche Grüße aus http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
        1. Hello,

          Da kannst Du doch sicher bestens
          http://selfhtml.bitworks.de/artikel_locking/show_visitors.php
          verwenden. Du musst Doch nur die Funktion, die die Datensätze beschafft, gegen eine andere austauschen und die Anzeigefunktion anpassen.

          Es würde mich interessieren, wie kompliziert das ist, das Beispiel auf Deinen Fall anzupassen und wie man das automatisieren könnte.
          Was muss also alles angepasst werden und wie könnte man dafür Regeln programmieren, sodass Du nur noch "click click click" machen müsstest?

          Statt eiens serialisierten Arrays taucht bei Dir eine Textdatre auf, die per "file()" eingelesen werden könnte, wenn sich das mit flock() absichern ließe. Du musst also wahrscheinlich eine Schleife mit fgets() benutzen oder besser fread() lassen und explode nutzen. das hat auch den Vorteil, dass das Zeilenendezeichen nicht mehr, wie bei file(), am letzten Feld klebt.

          Und die Anzeigefunktion müsste mit Parametern arbeiten, so wie das im Beispiel für Adressverwaltung" geregelt wird. Dadruch bläht sich aber eine solche Anwendung immer sehr auf.

          Ach, man kann eben nicht alles haben. Kurzen Code und universellen auf einmal geht eben nicht.

          Harzliche Grüße aus http://www.annerschbarrich.de

          Tom

          --
          Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
          Nur selber lernen macht schlau
        2. Hi Tom,

          Da kannst Du doch sicher bestens http://selfhtml.bitworks.de/artikel_locking/show_visitors.php verwenden.

          Je nach Verwendungszweck, wäre es IMHO aber besser, die Seitenzahl als $_GET Parameter an die URL mit dranzuhängen, somit also auch den Blättermechanismus von $_POST auf $_GET umzustellen, damit der User sich einzelne Seiten bookmarken kann.

          MfG, Dennis.

          --
          Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:( mo:} zu:|
          That's life - Es gibt im Leben[tm] keine Zurück-Taste. (Fabian Transchel)
          1. Hello,

            Da kannst Du doch sicher bestens http://selfhtml.bitworks.de/artikel_locking/show_visitors.php verwenden.

            Je nach Verwendungszweck, wäre es IMHO aber besser, die Seitenzahl als $_GET Parameter an die URL mit dranzuhängen, somit also auch den Blättermechanismus von $_POST auf $_GET umzustellen, damit der User sich einzelne Seiten bookmarken kann.

            Wäre 'ne Idee. Da die Seiten aber nicht konstant sind, sondern von den vorhandenen Daten abhängen, müsste man sich da einen anderen Mechanismus ausdenken. Z.B. "die nächste Seite ab IP ###.###.###.###".

            ----------
            Außerdem möchte ich einen Funktionsumfang aufbauen, der sowohl mit Datenbank als auch mit Flatfiles funktioniert. Und bei den Flatfiles dann sowohl die serialized Arrays als auch die Random-Acces-Files.

            Harzliche Grüße aus http://www.annerschbarrich.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            Nur selber lernen macht schlau
            1. Hi Tom,

              Je nach Verwendungszweck, wäre es IMHO aber besser, die Seitenzahl als $_GET Parameter an die URL mit dranzuhängen, somit also auch den Blättermechanismus von $_POST auf $_GET umzustellen, damit der User sich einzelne Seiten bookmarken kann.

              Wäre 'ne Idee. Da die Seiten aber nicht konstant sind, sondern von den vorhandenen Daten abhängen, müsste man sich da einen anderen Mechanismus ausdenken. Z.B. "die nächste Seite ab IP ###.###.###.###".

              Eine Möglichkeite wäre, das ganze rückwärts durchzugehen, dann würde sich an den "Inhalten" lediglich etwas ändern, wenn ein Datensatz gelöscht wird.

              Eine andere Möglichkeit, die ich schon mal angedacht hatte war, dass man unabhängig von den Seiten, einen einzelnen Eintrag auch noch über einen zusätzlichen GET Parameter aufrufen kann mit der ID des Datensatzes, z.B: ?entry=1 oder so in der Art. Denn meistens wird ein Besucher doch nur speziell wegen einem Beitrag bookmarken wollen - so könnte man dem Besucher dann anbieten, die URL mit ?entry= zu bookmarken, wenn der Eintrag dann später noch existiert müsste es ja problemlos möglich sein, diesen jederzeit wiederzufinden.

              MfG, Dennis.

              --
              Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:( mo:} zu:|
              Wer die FAQ gelesen hat, ist klüger! ... und weiß wie man Links macht ;-)