Dennis: Zeile in Textdatei löschen - aber wie

Beitrag lesen

Hi Tom

Ja. Man muss vielleicht gelegentlich die älteren Beiträge ins Archiv schicken, damit die Datei nicht größer als ca. 2MB wird.

Auf einer Privat-Seite müsste es doch reichen, jeden Monat als eine Datei zu archivieren, oder?

Da hätte ich dann nochmal eine Frage; Was hälst du für besser?
a) So hab ich das auch schon mal ausprobiert, die entsprechenden Dateien werden, wenn sie alt sind verschoben und nach Ordner Jahr/Dateiname Monat abgelegt.
Dann gibt es ein PHP Script, welches mit index.php?jahr=xxx&monat=xx aufgerufen werden kann, welches die Datein einliest und ausgibt. Sind keine GET Variablen dran, listet es alle vorhandenen Jahre auf, bei Klick auf Jahr die Monate.
b) Wenn eine Datei fällig fürs achiv ist, wird eine .html Datei erzeugt, wo der Code dann richtig reingeschrieben wird. Über Links von der index.php im Archiv kann man dann zu allen Monaten gelangen.
Eventuell auflistung von Jahren wie oben, ansonsten manuell.

Du könntst sie ja mit ".aol" kennzeichen *gg* für "Array Organized List".

Man sollte das leben halt mit Humor angehen ;-)

Geanau das ist falsch. Stell Dir vor, Du liest, während schon jemand schreibt. Nach Deiner Methode wäre die Datei in diesem Moment ja noch nicht gesperrt. Aber die Thematik der Zeit-Zustandsdiagramm und des "richtigen" Lockings wir ein großes Kapitel in dem Artikel einnehmen. Selbst die Überlegung, mit welchem Mode (r,w,a) die Datei geöffnet wird, lässt keinerlei Raum, wenn man die Datei selber als Sperrobjekt nutzen will.

Aber wenn ich zum Beispiel eine Datei habe, die _nur_ ausgeben soll, so brauche ich da doch nicht lock() verwenden, oder?
Oder käme es dann trotzdem zu Problemen, wenn ich gerade auslese, und ein anderer schreiben will?

Hm, kleine Frage: Was, wenn das neue Array nun kürzer ist als das alte. Bei deiner Methode mit fseek() und fwrite(), würde dann da am Ende nicht der Rest des alten, längeren Arrays stehen bleiben?
Darum trimmt man sie ja vor der Freigabe mit ftruncate().

Achso, da müsste man dann ftruncate(filesize()) verwenden, oder was verwendet man am besten, um die Länge der Datei herauszufinden?

Warum nicht den File vorher schließen, eneut öffnen und zwar mit der Fuktion, das die dateilänge auf 0 Bytes gesetzt wird (das war glaube ich "w")?
Weil man sie dann nicht selber als Sperrobjekt nutzen kann, sondern eine Hilfsdatei benötigt (so wie in speichern.php beschrieben)

Das habe ich jetzt noch nicht ganz verstanden. _Weshalb_ braucht man dann eine Hilfsdatei?

Was macht denn ein Co-Autor so genau?
[...]

OK, ich werds mir merken ;-)

Die allgemeinen Dinge sollten wir ruhig hier diskutieren. Es wird ja nichts Geheimes werden.

Hm, es gibt nur so Leute, die sich immer beschweren, dass das Forum für den häufigen/anhaltenden Nachrichtenaustausch nicht gedacht ist (was ja auch stimmt).
Und wenn dieser Thread dann hier weg ist, dann muss man halt immer wieder einen neuen aufmachen.

Meinst Du damit jetzt meinen ersten Entwurf http://selfhtml.bitworks.de oder nur allgemein?

Genauer gesagt von http://selfhtml.bitworks.de/Safe_Mode.doc? Ja, ich meinte den ersten Entwurf davon. Es ist vielleicht stellenweise etwas zu sehr gefachsimpelt - aber wie gesagt, dass kommt auf die Zielgruppe an.
Aber du willst doch das mit dem SafeMode auch als Feature Artikel reinbringen, oder? Dann musst du das ja noch alles in HTML-Form bringen. Oder willst du das als .doc Dokumentation ins Netzt stellen?

Wo lag da jetzt noch mal der Unterschied im Detail?
indiziert:
[0] => 'Hans';
assoziiert:
['vorname'] => 'Hans';

Achso, assoziiert ist also das wo eine Wirkliche Name = Wert Zuweisung vorhanden ist.
Ich kannte das beides, was du geschrieben hast. Aber mir war nicht klar, was was ist und wie es heißt *g*

Ja, das auch, aber ich meinte die Varianz der Datensätze, die durch Namen sehr viel leichter möglich ist, als bei Indexen. Deine Idee führt zur Klassifizierung von Elementen. Das geht dann schon in die Richtung von totaler Trennung von Inhalt und Format (versucht man bei HTML<->CSS ja auch). Das ist grundsätzlich nicht falsch, wenn man sich nicht einen dabei abkrampft. Keep ist Simple.

Eigentlich dürfte das ja nicht so schwer sein, so könnte man vielleicht bei einem Gästebuch den Aubau des Arrays machen:

$riesengroßes_Supperarray
  [ID des Postings]
     [Angaben des Besuchers]
         [Name]     => ...
         [E-Mail]   => ...
         [Homepage] => ...
         [Ort]      => ...
     [Einträge des Besuchers]
         [datum]    => ...
         [zeit]     => ...
         [eintrag]  => ...

Hab ich da noch irgendwas wichtiges vergessen, was man ein Besucher eigeben können sollte?

Beim Schreiben müsste man erst count($riesengroßes_Superarray) machen, und dann die nächsthöhere ID nehmen und den Eintrag erzeugen. Dann schließlich ist Gästebuch schreiben.

Beim Lesen/Ausgeben müsste man eine For-Schleife nehmen:
for($x=0,$x<count($riesengroßes_Superarray),$x++) {
  //Hier kommen dann die Ausgaben, z.B:
  echo "Eintrag von: ";
  echo $riesengroßes_Supperarray[$x][Angaben des Besuchers][Name];
  //usw mit allen Angaben
}

Natürlich fehlen hier noch sachen wie die '', es dürfen keine Leerzeichen in den Variablen sein usw. aber das ist ja nur zur Übersicht.
Das würde doch grundliegend so gehen, oder sehe ich da irgendwas falsch?

Jetzt noch mal von meinem Gästebuch weg, zu deinem Feature Artikel über Speichern in Flatfiles:
Was hast du denn bis jetzt schon dazu alles? Hast du schon Texte geschrieben? Was beabsichtigst du da eigentlich so zu schreiben? Willst du es anhand eines Beispiels erklären, wenn ja an welchem?

Sonst könnte ich eventuell ja noch ein Beispielscript als Ergänzung zu deinem Feature-Artikel schreiben, wo ich dann z.B. ein Gästebuch auf PHP Basis nehmen würde.

MfG, Dennis.

--
Hinweise:
Signatur 3 von 3:
Fragen zu Formularen?
http://tutorial.riehle-web.com hilft!
0 163

Zeile in Textdatei löschen - aber wie

Dennis
  • php
  1. 0
    Harry
    1. 0
      Dennis
      1. 0
        Fabian Transchel
        1. 0
          Dennis
          1. 0
            Dennis
    2. 0
      Auge
  2. 0
    Tom
    1. 0
      Harry
      1. 0
        Tom
        1. 0
          Tom
        2. 0
          Harry
          1. 0
            Tom
            1. 0
              Harry
              1. 0
                Tom
                1. 0

                  Nervende Werbung

                  Dennis
                  • meinung
                  1. 0
                    Fabian Transchel
                    1. 0
                      Dennis
                  2. 0
                    Schuer
                    1. 0
                      Tom
                      1. 0
                        Schuer
                        1. 0
                          Tom
    2. 0
      Dennis
      1. 0
        Tom
        1. 0
          Dennis
          1. 0
            Tom
            1. 0
              Dennis
              1. 0
                Tom
                1. 0
                  Dennis
                  1. 0
                    Tom
                    1. 0
                      Dennis
                      1. 0
                        Tom
                        1. 0
                          Dennis
                          1. 0
                            Tom
                            1. 0
                              Dennis
                              1. 0
                                Tom
                                1. 0
                                  Dennis
                                  1. 0

                                    safe Mode

                                    Dennis
                                  2. 0
                                    Tom
                                    1. 0
                                      Dennis
                                      1. 0

                                        Geschafft!!! Aber nun weiter...

                                        Dennis
                                        1. 0
                                          Tom
                                          1. 0

                                            Verschieben von Daten - Archivierung

                                            Dennis
                                            1. 0
                                              Tom
                                              1. 0
                                                Dennis
                                                1. 0
                                                  Tom
                                                  1. 0
                                                    Tom
                                                    1. 0
                                                      Dennis
                                                      1. 0
                                                        Dennis
                                                        1. 0

                                                          News Script

                                                          Dennis
                                                          1. 0

                                                            File Locking, Fehlerbehandlung

                                                            Tom
                                                            1. 0
                                                              Dennis
                                                              1. 0
                                                                Tom
                                                                1. 0
                                                                  Dennis
                                                                  1. 0
                                                                    Tom
                                                                    1. 0
                                                                      Tom
                                                                      1. 0
                                                                        Dennis
                                                                        1. 0
                                                                          Dennis
                                                                          1. 0
                                                                            Tom
                                                                            1. 0
                                                                              Dennis
                                                                              1. 0
                                                                                Tom
                                                                                1. 0
                                                                                  Dennis
                                                                                  1. 0
                                                                                    Tom
                                                                                    1. 0
                                                                                      Dennis
                                                                                      1. 0
                                                                                        Tom
                                                                                        1. 0
                                                                                          Dennis
                                                                                          1. 0
                                                                                            Tom
                                                                                            1. 0
                                                                                              Dennis
                                                                                              1. 0
                                                                                                Tom
                                                                                                1. 0
                                                                                                  Dennis
                                                                                                  1. 0
                                                                                                    Tom
                                                                                                    1. 0
                                                                                                      Dennis
                                                                                                      1. 0
                                                                                                        Tom
                                                                                                        1. 0

                                                                                                          Haaaalol, sieht uns jemand?

                                                                                                          Tom
                                                                                                          • zu diesem forum
                                                                                                          1. 0

                                                                                                            Haaa *lol*, hier liest keiner mehr :-(

                                                                                                            Dennis
                                                                                                            1. 0

                                                                                                              HAAAALLOOO, SIEHT UNS KEINER? Wertebereich von Schlüsseln

                                                                                                              Tom
                                                                                                              • datenbank
                                                                                                              1. 0
                                                                                                                Vinzenz
                                                                                                              2. 0
                                                                                                                Vinzenz
                                                                                                              3. 0
                                                                                                                Vinzenz
                                                                                                                1. 0
                                                                                                                  Tom
                                                                                                        2. 0

                                                                                                          Functionen, Archivierung

                                                                                                          Dennis
                                                                                                          1. 0
                                                                                                            Tom
                                                                                                            1. 0
                                                                                                              Dennis
                                                                                                              1. 0

                                                                                                                Tom?

                                                                                                                Dennis
                                                                                                                1. 0
                                                                                                                  Tom
                                                                                                                  1. 0

                                                                                                                    Projekt Flatfiles: Datensicherung

                                                                                                                    Tom
                                                                                                                  2. 0
                                                                                                                    Tom
                                                                                                                    1. 0
                                                                                                                      Dennis
                                                                                                                      1. 0
                                                                                                                        Tom
                                                                                                                        1. 0

                                                                                                                          Schnelles und speicherplatzsparendes Speichern in Flatfiles

                                                                                                                          Dennis
                                                                                                                          1. 0

                                                                                                                            Speichern in Flatfiles

                                                                                                                            Tom
                                                                                                                            1. 0
                                                                                                                              Dennis
                                                                                                                              1. 0
                                                                                                                                Tom
                                                                                                                                1. 0
                                                                                                                                  Dennis
                                                                                                                                  1. 0

                                                                                                                                    Tom?

                                                                                                                                    Dennis
                                                                                                                                    1. 0
                                                                                                                                      Dennis
                                                                                                                                      1. 0
                                                                                                                                        Arx
                                                                                                                                        1. 0

                                                                                                                                          Flatfile Funktionen

                                                                                                                                          Dennis
                                                                                                                                          1. 0
                                                                                                                                            Arx
                                                                                                                                            1. 0
                                                                                                                                              Dennis
                                                                                                                                              1. 0
                                                                                                                                                Arx
                                                                                                                                                1. 0
                                                                                                                                                  Dennis
                                                                                                                                                  1. 0
                                                                                                                                                    Arx
                                                                                                                                                    1. 0
                                                                                                                                                      Dennis
                                                                                                                                                      1. 0

                                                                                                                                                        Signatur

                                                                                                                                                        Arx
                                                                                                                                                        • zu diesem forum
                                                                                                                                                        1. 0
                                                                                                                                                          Dennis
                                                                                                                                                          1. 0
                                                                                                                                                            Arx
                                                                                                                                                            1. 0
                                                                                                                                                              Dennis
                                                                                                                                                              1. 0
                                                                                                                                                                Dennis
                                                                                                                                                                1. 0
                                                                                                                                                                  Arx
                                                                                                                                                              2. 0
                                                                                                                                                                Arx
                                                                                                                                                                1. 0
                                                                                                                                                                  Dennis
                                                                                                                                                                  1. 0
                                                                                                                                                                    Arx
                                                                                                                                                                    1. 0
                                                                                                                                                                      Arx
                                                                                                                                                                      1. 0
                                                                                                                                                                        Dennis
                                                                                                                                                                        1. 0
                                                                                                                                                                          Arx
                                                                                                                                                                          1. 0
                                                                                                                                                                            Dennis
                                                                                                                                                                            1. 0
                                                                                                                                                                              Arx
                                                                                                                                                                              1. 0
                                                                                                                                                                                Dennis
                                                                                                                                                                                1. 0
                                                                                                                                                                                  Arx
                                                                                                                                                                                  1. 0
                                                                                                                                                                                    Dennis
                                                                                                                                                                                    1. 0
                                                                                                                                                                                      Arx
                                                                                                                                                                                      1. 0
                                                                                                                                                                                        Dennis
                                                                                                                                                                                        1. 0
                                                                                                                                                                                          Arx
                                                                                                                                                                                          1. 0
                                                                                                                                                                                            Dennis
                                                                                                                                                                                            1. 0
                                                                                                                                                                                              Tom
                                                                                                                                                                                              1. 0
                                                                                                                                                                                                Dennis
                                                                                                                                                                                                1. 0
                                                                                                                                                                                                  Tom
                                                                                                                                                                                        2. 0
                                                                                                                                                                                          Thomas J.S.
                                                                                                                                                                                          1. 0
                                                                                                                                                                                            Dennis
                                                                                                                                                                                            1. 0
                                                                                                                                                                                              Thomas J.S.
                                                                                                                                                                                              1. 0
                                                                                                                                                                                                Dennis
                                                                                                                                                                    2. 0
                                                                                                                                                                      Dennis
                                                                                                                                                                      1. 0
                                                                                                                                                                        Arx
                                                                                                                                                                        1. 0

                                                                                                                                                                          Dies ist ein Test

                                                                                                                                                                          Dennis
                                                                                                                                                                          1. 0
                                                                                                                                                                            Arx
                                                                                                                                                                            1. 0
                                                                                                                                                                              Dennis
                                                                                                                                                                              1. 0
                                                                                                                                                                                Jan R.
                                                                                                                                                                                1. 0
                                                                                                                                                                                  Dennis
                                                                                                                                          2. 0
                                                                                                                                            Tom
                                                                                                                                  2. 0
                                                                                                                                    Tom
                                                                                                                                    1. 0
                                                                                                                                      Dennis
                                                                                                                                      1. 0
                                                                                                                                        Dennis
                                                                                                                                        1. 0
                                                                                                                                          Dennis
                                                                                                                                          1. 0
                                                                                                                                            Dennis
                                                                                                                                            1. 0
                                                                                                                                              Tom
                                                                                                                                              1. 0
                                                                                                                                                Dennis
                                                                                                                                                1. 0
                                                                                                                                                  Tom
                                                                                        2. 0
                                                                                          Tom
                                                                                          1. 0

                                                                                            Speichern in Flatfiles: Performance

                                                                                            Tom
                                                                        2. 0
                                                                          Tom
                2. 0

                  WER DAS HIER LIEST BITTE MELDEN

                  HILFE
                  • zur info
    3. 0
      Arx
      1. 0
        Dennis
  3. 0

    HALLO - Problem Wertebereich von Schlüsseln

    Dennis
    • datenbank
    1. 0
      Thomas J.S.
      1. 0
        Dennis
        1. 0
          Thomas J.S.
          1. 0
            Dennis
        2. 0
          Andreas Korthaus
          1. 0
            Dennis
          2. 0
            Tom
            1. 0
              Andreas Korthaus