Andreas-Lindig: Dateizeiger nur zum lesen oder auch zum schreiben?

Hallo zusammen,

Ich habe Probleme mit verschiedenen Dateizeigerfunktionen z.B. fseek() oder rewind().
Ich habe versucht, nach dem Öffnen der Datei den Dateizeiger an eine Bestimmte Stelle zu setzen und dort in die Datei zu schreiben - es wird aber immer an das Dateiende geschrieben. kann es sein, daß die Dateizeigerposition nur für das Lesen gültig ist?

dankeschön und Gruß, Andreas

http://www.andeas-lindig.de/was_ist_das_extra.htm

  1. hallo Andreas,

    Ich habe versucht, nach dem Öffnen der Datei den Dateizeiger an eine Bestimmte Stelle zu setzen und dort in die Datei zu schreiben - es wird aber immer an das Dateiende geschrieben. kann es sein, daß die Dateizeigerposition nur für das Lesen gültig ist?

    möglich ist das, aber deinen PHP-Code kann man ja nicht sehen. Es gibt nur allerhand (verbesserungsbedürftigen) Javascript-Code dort. Du müßtest das eventuell als Textdatei hochladen oder, wenns nicht zuviel Code wird, hier posten.

    http://www.andeas-lindig.de/was_ist_das_extra.htm

    nette Idee übrigens. Ist in dieser URL das "r" bei "andreas" absichtlich ausgelassen?

    Grüße aus Berlin

    Christoph S.

    1. Hallo Chistoph,

      möglich ist das, aber deinen PHP-Code kann man ja nicht sehen.

      Diese Seite dient nur zur Auflockerung des Gesprächs... (war gar-nicht als Korrekturvorlage gemeint)

      Es gibt nur allerhand (verbesserungsbedürftigen) Javascript-Code dort.

      was denn?

      Du müßtest das eventuell als Textdatei hochladen oder, wenns nicht zuviel Code wird, hier posten.

      mach' ich morgen. Ich muß immer ein Stück fahren, um zu einem Internet-Anschluß zu gelangen. Und Beispiele habe ich jetzt nicht dabei, sondern zuhause.

      http://www.andeas-lindig.de/was_ist_das_extra.htm
      nette Idee übrigens.

      Dankeschön.

      Ist in dieser URL das "r" bei "andreas" absichtlich ausgelassen?

      Nein, Schreibfehler bei der Anmeldung

      Grüße aus Dortmund
      Andreas

      1. rehallo,

        möglich ist das, aber deinen PHP-Code kann man ja nicht sehen.
        Diese Seite dient nur zur Auflockerung des Gesprächs... (war gar-nicht als Korrekturvorlage gemeint)

        muß ich das jetzt verstehen?

        Es gibt nur allerhand (verbesserungsbedürftigen) Javascript-Code dort.
        was denn?

        du arbeitest offensichtlich mit Dreamweaver. Dieses Teil baut (oder fügt ein) offensichtlich solche Javascript-Funktionen, die immer mit "MM_" beginnen, und die Macromedia irgendwann mal für wesentlich gehalten hat. In der Regel kann man die Hälfte davon streichen und mit der anderen Hälfte nach gründlicher Überarbeitung einigermaßen weiterleben.

        Grüße aus Berlin

        Christoph S.

        1. re rehallo,

          Diese Seite dient nur zur Auflockerung des Gesprächs... (war gar-nicht als Korrekturvorlage gemeint)
          muß ich das jetzt verstehen?

          wenns zu schwer war nicht.

          du arbeitest offensichtlich mit Dreamweaver. Dieses Teil baut (oder fügt ein) offensichtlich solche Javascript-Funktionen, die immer mit "MM_" beginnen, und die Macromedia irgendwann mal für wesentlich gehalten hat. In der Regel kann man die Hälfte davon streichen und mit der anderen Hälfte nach gründlicher Überarbeitung einigermaßen weiterleben.

          ist schon recht. Aber aus dem Dreamweaver stammt nur die Funktion für den N4-resize-Bug. Ich fange manchmal in diesem Programm an, um ein Layout zu finden und der fügt das Script immer gleich automatisch ein. Ich kopiere meine Dateischnipsel dann viel hin und her und da bleibt dann das eine oder andere übrig...

          Gruß, Andreas

          <dhtml.andeas-lindig.de>

  2. Hallo Forum,
    leider nimmt das Forum meinen hier reinkopierten Text nicht an - warum auch immer. Deshalb habe ich aus meiner Frage und dem Quelltext notdürftig eine html-Seite gemacht auf meinen Webspace gelegt:

    http://extra.andeas-lindig.de/forum.htm

    Gruß, Andreas

    1. hallo Andreas,

      http://extra.andeas-lindig.de/forum.htm

      ist wahrhaftig nicht sehr viel, und wieso du das nicht hier posten kannst, verstehe ich nicht ganz ...
      folgendes dazu: es ist völlig korrekt, daß PHP dir bei dieser Konstruktion "neue" Einträge immer ans Ende der bestehenden Datei schreibt, siehe http://www.php.net/manual/de/function.fwrite.php. Was du machen könntest, wäre: irgendeine Markierung setzen, zum Beispiel
      <!--hier bitte --//>
      die kann an beliebiger Stelle in deinem HTML-Dokument stehen. Und dann mußt du PHP halt nur noch anweisen, diese Markierung jedesmal zu überschreiben, wenn jemand eine Eingabe macht (wobei die Markierung selbstverständlich auch gleich neu gesetzt werden muß, damit der nächste auch noch was schreiben kann). Die Kommentarform ist wichtig, damit deine Markierung nicht in Browsern angezeigt wird, es sind aber auch andere Zeichen denkbar  -  zum Beispiel ein Unicodezeichen für eine Leertaste usw.

      Grüße aus Berlin

      Christoph S.

      1. hallo Christoph

        folgendes dazu: es ist völlig korrekt, daß PHP dir bei dieser Konstruktion "neue" Einträge immer ans Ende der bestehenden Datei schreibt, siehe http://www.php.net/manual/de/function.fwrite.php.

        kenn' ich, aber da wird doch garnicht gesagt, wohin innerhalb der Datei geschrieben wird.

        Was du machen könntest, wäre: irgendeine Markierung setzen, zum Beispiel
        <!--hier bitte --//>. Und dann mußt du PHP halt nur noch anweisen, diese Markierung jedesmal zu überschreiben.

        das klingt sehr interessant.

        schön, und wozu sind die Dateizeiger dann überhaupt da?

        gruß, Andreas

        1. Hallo

          kenn' ich, aber da wird doch garnicht gesagt, wohin innerhalb der Datei geschrieben wird.

          Bei fopen() wird doch angegeben, mit welchem Modus die Datei
          geöffnet wird (a, w, r, a+, w+, r+). Je nach Modus
          steht der Dateizeiger am Anfang oder am Ende der Datei.

          Was du machen könntest, wäre: irgendeine Markierung setzen, zum Beispiel
          <!--hier bitte --//>. Und dann mußt du PHP halt nur noch anweisen, diese Markierung jedesmal zu überschreiben.
          das klingt sehr interessant.

          Eine andere Möglichkeit wäre, die Datei per file()
          in ein Array einzulesen, und alle Manipulationen des Inhalts
          an den Elementen des Arrays vorzunehmen.
          Zum Schluß wird die Datei mit fopen($datei,"w")
          vollkommen neu geschrieben.

          Tschüß, Auge

          1. Hi, neues Gesicht...

            Bei fopen() wird doch angegeben, mit welchem Modus die Datei
            geöffnet wird (a, w, r, a+, w+, r+). Je nach Modus
            steht der Dateizeiger am Anfang oder am Ende der Datei.

            ja, aber ich bewege den Dateizeiger ja nach dem Öffnen, das ist der Witz an dem Ganzen. (hast Du Dir das Beispiel angesehen?)

            Eine andere Möglichkeit wäre, die Datei per file()
            in ein Array einzulesen, und alle Manipulationen des Inhalts
            an den Elementen des Arrays vorzunehmen.

            ja, man kann den Inhalt auch einfach in eine Variable einlesen und damit hantieren. Zu einer Lösung komme ich so oder so. Aber mich hat gerade DIESE Möglichkeit interessiert, weil sie (wenn sie denn funktionierte) so einfach scheint.

            Tschüß, Andreas

            1. hallo,

              ja, aber ich bewege den Dateizeiger ja nach dem Öffnen, das ist der Witz an dem Ganzen.

              Das kriegt aber PHP nicht mit, weil es auf dem Server ausgeführt wird. Auge hat schon völlig recht

              Aber mich hat gerade DIESE Möglichkeit interessiert, weil sie (wenn sie denn funktionierte) so einfach scheint.

              man soll sich eben nicht von allen einfachen Dingen verführen lassen ;-)

              Christoph S.

              1. Hallo

                Das kriegt aber PHP nicht mit, weil es auf dem Server ausgeführt wird.

                Siehste, daran habe ich in dem Moment, als ich schrieb,
                gar nicht gedacht.
                Ka***, Schei**, Mi** ;-)

                Aber mich hat gerade DIESE Möglichkeit interessiert, weil sie (wenn sie denn funktionierte) so einfach scheint.
                man soll sich eben nicht von allen einfachen Dingen verführen lassen ;-)

                Wenn das Wörtchen wenn nicht wär...

                Tschüß, Auge

                P.S.: Hast'e dir schon wieda an'n Wasserhahn ranjetraut? ;-)

                1. huhu ;-)

                  P.S.: Hast'e dir schon wieda an'n Wasserhahn ranjetraut? ;-)

                  nö, hab mir nich mal jewaschn heute, merkst dat nich?

                  CS