MaLu: In eine Datei schreiben

Hallo Profis,

ich möchte in eine Datei bestimmte Werte schreiben. Doch diese dürfen nicht willkürlich da drin stehen. Sie müssen an eine bestimmte Stelle. Wie mache ich das?

  1. Hallo

    ich möchte in eine Datei bestimmte Werte schreiben. Doch diese dürfen nicht willkürlich da drin stehen. Sie müssen an eine bestimmte Stelle. Wie mache ich das?

    http://www.php-faq.de/q/q-datei-einfuegen.html sollte Dir weiterhelfen können, auch wenn dort nur von "Einfügen" und "Löschen" die Rede ist.

    Freundliche Grüße

    Vinzenz

  2. Liebe(r) MaLu,

    ich möchte in eine Datei bestimmte Werte schreiben. Doch diese dürfen nicht willkürlich da drin stehen. Sie müssen an eine bestimmte Stelle. Wie mache ich das?

    das geht so:

    * Datei einlesen (also Dateiinhalt in einer Variable speichern)
    * Dateiinhalt entsprechend modifizieren
    * Datei zum Beschreiben öffnen
    * den modifizierten Dateiinhalt in die Datei zurückschreiben
    * und die Datei wieder schließen.

    Alles klar?

    Liebe Grüße aus Ellwangen,

    Felix Riesterer.

  3. Hello,

    ich möchte in eine Datei bestimmte Werte schreiben. Doch diese dürfen nicht willkürlich da drin stehen. Sie müssen an eine bestimmte Stelle. Wie mache ich das?

    Das ist jetzt eine Frage an Radio Eriwan...

    Im Prinzip machst Du as, indem Du sie an eine bestimmte Stelle schreibst :-))

    Also Datei öffnen,
    Dateizeiger an die Stelle rücken, wo die Daten anfangen sollen
    losschreiben

    Dabei muss man aber beachten, dass man

    • nicht mehr Datenbytes schreibt, als für die "Stelle" vorgesehen sind
    • das Datenformat einhält,
      -- also den Datentyp
      -- das neutrale Element (also ob mit NUL oder mit Space oder was auch immer aufgefüllt wird)
      -- Datenendemarkierung oder Längenbyte (z.B. für Strings)
      -- das Schreibformat für Datentypen (Bigendian, Littleendian, Stream, ...)

    In einfachen Fällen hilft Die substr()
    In komplexeren Fällen helfen die Funktionen pack() und unpack()

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

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau

    1. Dateizeiger an die Stelle rücken, wo die Daten anfangen sollen.

      Wie setzte ich den Dateizeiger an eine bestimmte Stelle?

      Gruß
      MaLu

      1. Hallo

        Wie setzte ich den Dateizeiger an eine bestimmte Stelle?

        mit fseek().

        Hilft Dir das wirklich weiter?
        Könntest Du uns mitteilen, wie Du diese "bestimmte" Position bestimmst.

        Freundliche Grüße

        Vinzenz

        1. Könntest Du uns mitteilen, wie Du diese "bestimmte" Position bestimmst.

          Das weis ich ja selbst nicht. Ich habe ein Formular programmiert, wo man seine Anmeldedaten (wie z.B. Name, Adresse, Telefon) ändern kann. Die Stammdaten, die bei der erst Registrierung angegeben wurden, stehen in einer Datei. Wen jetzt jemand seine Daten in dem Formular ändert, muss dies ja auch in der Datei geändert werden. In der Datei stehen mehrere Informationen für mehrere Scripte.
          Um die Daten in der Datei zu ändern, muss die Position in der Datei angegeben werden und der alte wert überschrieben werden.

          Gruß
          MaLu

          1. Liebe(r) MaLu,

            Das weis ich ja selbst nicht.

            :-)

            Ich habe ein Formular programmiert, wo man seine Anmeldedaten (wie z.B. Name, Adresse, Telefon) ändern kann.

            Jetzt wissen wir endlich mehr!

            Die Stammdaten, die bei der erst Registrierung angegeben wurden, stehen in einer Datei.

            Wenn Du uns auch noch verrätst WIE, dann können wir sogar helfen!

            Um die Daten in der Datei zu ändern, muss die Position in der Datei angegeben werden und der alte wert überschrieben werden.

            Das wird nicht ganz so einfach sein...

            Liebe Grüße aus Ellwangen,

            Felix Riesterer.

            1. Die Stammdaten, die bei der erst Registrierung angegeben wurden, stehen in einer Datei.
              Wenn Du uns auch noch verrätst WIE, dann können wir sogar helfen!

              Dort steht $_SESSION['ort'] = "Musterstadt 1" $_SESSION['telefon'] = "0123456789". . . . . .

              Das was hinter dem "=" steht muss auf das, was im Formular vorher angegeben wurde, geändert werden.

              Gruß
              MaLu

          2. Hallo

            Könntest Du uns mitteilen, wie Du diese "bestimmte" Position bestimmst.

            Das weis ich ja selbst nicht. Ich habe ein Formular programmiert, wo man seine Anmeldedaten (wie z.B. Name, Adresse, Telefon) ändern kann. Die Stammdaten, die bei der erst Registrierung angegeben wurden, stehen in einer Datei. Wen jetzt jemand seine Daten in dem Formular ändert, muss dies ja auch in der Datei geändert werden. In der Datei stehen mehrere Informationen für mehrere Scripte.

            ich dachte mir doch so etwas. *g*

            Um die Daten in der Datei zu ändern, muss die Position in der Datei angegeben werden und der alte wert überschrieben werden.

            Deswegen habe ich Dir http://www.php-faq.de/q/q-datei-einfuegen.html empfohlen, ich zitiere den zweiten Absatz:

            "Tatsächlich ist der Wunsch nach einfachen Einfüge- und Löschoperationen der Auslöser für die Schaffung von Datenbankfunktionen wie die DBM-Funktionen oder von ganzen Datenbanken wie MySQL gewesen. Wenn man auf diese Sorte Problem trifft, sollte man also intensiv über den Einsatz von DBM-Dateien oder Datenbanken nachdenken."

            Du triffst gerade auf diese Sorte Problem ...

            Freundliche Grüße

            Vinzenz

            1. Lieber Vinzenz,

              Du triffst gerade auf diese Sorte Problem ...

              und ich löse das mittels XML-Dateien. Die kann ich leichter downloaden und archivieren.

              Zum Auslesen derselben gehört auch nicht viel, wenn man sich über die XML-Struktur einmal ausgiebig Gedanken gemacht hat.

              Liebe Grüße aus Ellwangen,

              Felix Riesterer.

              1. Hello,

                Du triffst gerade auf diese Sorte Problem ...
                und ich löse das mittels XML-Dateien. Die kann ich leichter downloaden und archivieren.

                Zum Auslesen derselben gehört auch nicht viel, wenn man sich über die XML-Struktur einmal ausgiebig Gedanken gemacht hat.

                Man kann mit PHP auch Random Access Dateien bauen und bedienen.
                Beispiel siehe http://selfhtml.bitworks.de --> Adressverwaltung

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

                Tom

                --
                Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                Nur selber lernen macht schlau

    2. Hi,

      Dateizeiger an die Stelle rücken, wo die Daten anfangen sollen
      losschreiben

      Bist Du sicher, dass dies ein praktikabler Ansatz für den Unerfahrenen ist? Imho ist hier eine Lösung empfehlenswert wie von Felix beschrieben:
      einlesen (z.B. mit file)
      die einzelnen Strings modifizieren...
      _komplett_ zurückschreiben in Datei...

      Gruesse, Joachim

      --
      Am Ende wird alles gut.
      1. Hello,

        Dateizeiger an die Stelle rücken, wo die Daten anfangen sollen
        losschreiben
        Bist Du sicher, dass dies ein praktikabler Ansatz für den Unerfahrenen ist?

        Ich wusste zum Zeitpunkt des Postings weder etwas über die Erfahrung noch über die Intention des/der Fragenden. Dieses Forum ist ein _Dialogforum_ und jeder kann nachfragen, wenn er etwas nicht versteht.

        Imho ist hier eine Lösung empfehlenswert wie von Felix beschrieben:
        einlesen (z.B. mit file)
        die einzelnen Strings modifizieren...
        _komplett_ zurückschreiben in Datei...

        Meiner Meinung nach ist es sogar noch besser, erstmal etwas über Dateitypen zu erzählen, anstatt nur Medizin aufs Problem zu kippen.

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

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau

        1. Hi Tom,

          Ich wusste zum Zeitpunkt des Postings weder etwas über die Erfahrung noch über die Intention des/der Fragenden.

          Geh weida, wenn Du ein Posting schon mit "Das ist jetzt eine Frage an Radio Eriwan..." einleitest, warst Du Dir über die "Erfahrung" des OP  ("...Wie mache ich das?") bestimmt im Klaren.

          Ausserdem will ich hier keinesfalls Deine Kompetenz unzweifeln, ich denke nur, Du meinst es etwas zuuu gut.

          Gruesse, Joachim

          --
          Am Ende wird alles gut.