Dateizeiger zeilenweise verzetzen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Dateizeiger zeilenweise verzetzen

    Ich weiß, ist ne newbi Frage... bin ja auch einer

    also ich öffne eine Datei mit fopen die mehrere Zeilen Text enthalten.
    In einer do-while Schleife hole ich mit fgets die ersten z.B. 15 Zeichen in der Zeile stehen aber nochmehr Zeichen die aber nicht wichtig sind. Nach dem Auswerten dieser Zeichen soll der Dateizeiger eine Zeile tiefer gesetzt werden damit beim erneuten durchlaufen der do-while Schleife wieder nur die ersten 15 Zeichen der nächsten Zeile gelesen werde.

    So nun die Frage... wie setzte ich den Dateizeiger eine Zeile tiefer oder sollte ich nicht mal mit fgets arbeiten .... ich hab meine Bücher schon durchgewälzt und nix gefunden.

    Und wenn ich schon mal hier bin..... wie hieß nochmal der Befehl zum ermitteln der Größe einer Variablen in bytes?

    Danke schonmal

  • #2
    ich meine nur...

    tach,

    ich meine nur, aber versuche mal fclose() zu machen, damit ein sogenannter 'reset' ensteht.

    Kommentar


    • #3
      Poste bitte den Code, damit klarer wird, was Du meinst.
      Wenn Du die "Auswertung" zwischen den fgets() machst sollte es doch funktionieren.

      Kommentar


      • #4
        hi und besten dank für die bisherige hilfe, hab gestern mitten in der Nacht, als ich mal kurz auf Klo muste, noch ne Lösung gefunden

        Kommentar


        • #5
          Zeigst Du den anderen Nutzern des Forums Deine Lösung oder behältst Du sie für dich?
          mein Sport: mein Frühstück: meine Arbeit:

          Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

          Kommentar


          • #6
            ok ok

            mein problem war einfach nur das ich nicht beachtet habe das der Zeilenumbruch auch ein asci Zeichen ist und das mit fgets immer nur bis ans ende einer Zeile gelesen werden kann und dann der Zeiger ohnehin eine Zeile tiefer gesetzt wird. Also hab ich einfach soviele Zeichen einlesen wollen wie 100%tig nicht in einer Zeile sind und somit hab ich den Zeiger beim erneuten einlesen eine Zeile Tiefer. ok hier der code

            // ip bestimmen
            $ip = $HTTP_SERVER_VARS["REMOTE_ADDR"];
            $ipf = $ip."\n";
            $ipp = $ip."\n";

            //datumsermittlung

            $microt = time();
            $date = gmdate("dMy" , $microt);

            //dateierzeugung

            $datefile = $date.".dat";

            if (file_exists($datefile))
            {$fdate = fopen($datefile ,"r+");}
            else
            {$fdate = fopen($datefile ,"w+");}

            // Datei prüfen ob ip vorhanden wenn nicht eintragen
            $ipexist = 0;
            $ef = 0;
            do
            {

            $ipdat = fgets($fdate, 100);


            if ($ipdat == $ipp)
            {$ipexist = 1;}


            if (feof($fdate))
            {$ef = 1;}

            }while($ef != 1);

            if ($ipexist == 0)
            { fwrite($fdate, $ipf); }

            fclose ($fdate);


            Das Problem bei mir lag darin das ich eigentlich nur 15 Zeichen einlesen wollte, dann aber das Problem nicht jede IP ist gleichlang und so weiter. aber hauptsächlich lag mein Fehler beim Zeilenumbruch, an den hab ich beim Vergleich einfach nicht gedacht

            Kommentar


            • #7
              shit happens heißen Dank.
              mein Sport: mein Frühstück: meine Arbeit:

              Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

              Kommentar


              • #8
                Wie hilfreich doch ein Klo sein kann

                Kommentar

                Lädt...
                X