+ Antworten
Seite 1 von 2 1 2 LetzteLetzte
Ergebnis 1 bis 15 von 17

Thema: Schreiben und lesen

  1. #1
    TP-Veteran manuelito hilft, wo's geht manuelito hilft, wo's geht manuelito hilft, wo's geht Avatar von manuelito
    Registriert seit
    Sep 2002
    Beiträge
    1.229

    Schreiben und lesen

    Hi,

    hab folgendes Problem:

    Ich schreibe Satz zeilenweise in eine TXT. Geht wunderbar, auslesen geht eigentlich auch wunderbar, nur möcht ichs eben anders haben. Wenn ich so reinschreibe...
    PHP-Code:
    $fp fopen($filename"a");
    fputs($fp,$message);
    fclose($fp); 
    und das dann so auslese..
    PHP-Code:
    $fp fopen ($filename"r") or die ("error when reading $filename");
    $output fread($fpfilesize($filename));
    fclose($fp); 
    Dann ist der neuste Eintrag immer zuunterst, wenn ich das ausgebe. Ich will den letzten Eintrag aber zuoberst. Habs schon mit anderen Eintragsmodi versucht ala W und W+ oder R und R+, aber dann überschreibt es mir immer die Zeile, die schon drinn steht.

    Gibts dafür ne einfache Lösung ?

    Danke euch vielmals,

    cu
    Wer sabotiert eigentlich ständig meine Signatur?

  2. #2
    TP-Veteran Scriff macht alles soweit korrekt Avatar von Scriff
    Registriert seit
    Nov 2002
    Ort
    bei Stuttgart (Esslingen)
    Beiträge
    1.356
    Hallole,

    das kannst du wenn du den Datenzeiger mit der Funktion

    rewind();

    auf den Anfang der Datei setzt.

    Jedoch darfst du dann nicht im Append Modus arbeiten weil er sonst alle Daten an das ende der datei setzt.



    Geändert von Scriff (02.01.2003 um 19:18 Uhr)

  3. #3
    TP-Veteran manuelito hilft, wo's geht manuelito hilft, wo's geht manuelito hilft, wo's geht Avatar von manuelito
    Registriert seit
    Sep 2002
    Beiträge
    1.229
    Hi,

    soweit sogut, doch was ist der Append Modus und wann brauche ich den ?

    Dank dir vielmals

    cu
    Wer sabotiert eigentlich ständig meine Signatur?

  4. #4
    TP-Veteran Scriff macht alles soweit korrekt Avatar von Scriff
    Registriert seit
    Nov 2002
    Ort
    bei Stuttgart (Esslingen)
    Beiträge
    1.356
    Ich mein mit dem Append Modus wenn du deine Dastei zum Schreiben öffnest in dem Modus A+

    damit werden deine daten dann immer automatisch an das Ende gesetzt..
    d.h du darfst diese Modus dann nicht verwenden wenn du voher deinen Daten zeoger mit rewind auf den Datenanfang stellst.

    Eigentlich müsste es auch mit dem R+ Modus gehen.

  5. #5
    TP-Veteran manuelito hilft, wo's geht manuelito hilft, wo's geht manuelito hilft, wo's geht Avatar von manuelito
    Registriert seit
    Sep 2002
    Beiträge
    1.229
    Achso, okay danke, werd das mal ausprobieren

    Vielen Dank

    cu
    Wer sabotiert eigentlich ständig meine Signatur?

  6. #6
    TP-Veteran manuelito hilft, wo's geht manuelito hilft, wo's geht manuelito hilft, wo's geht Avatar von manuelito
    Registriert seit
    Sep 2002
    Beiträge
    1.229
    HI,

    folgendes...
    PHP-Code:
    $fp fopen($filename"r+");
    rewind($fp); 
    fputs($fp,$message);
    fclose($fp); 
    ...funktioniert leider nicht, die bestehende Zeile wird überschrieben

    Hilfe !

    Danke und cu
    Wer sabotiert eigentlich ständig meine Signatur?

  7. #7
    TP-Veteran manuelito hilft, wo's geht manuelito hilft, wo's geht manuelito hilft, wo's geht Avatar von manuelito
    Registriert seit
    Sep 2002
    Beiträge
    1.229
    Hmm...wirklich niemand ? Schade
    Wer sabotiert eigentlich ständig meine Signatur?

  8. #8
    TP-Veteran Scriff macht alles soweit korrekt Avatar von Scriff
    Registriert seit
    Nov 2002
    Ort
    bei Stuttgart (Esslingen)
    Beiträge
    1.356
    gehts net ?
    HM....und wenn du das rewind weglässt und nur im R+ schreibst ..auch net ?

    Falls sonst keiner was weiss, könntest du ja die datei einlesen ,zwischenspeichern,neuen datensatz einfügen und das zwischengespeicherte wieder dranhängen..

  9. #9
    TP-Greis Lars bringt sich richtig ein
    Registriert seit
    Jun 2001
    Beiträge
    5.468
    Hmm ... Du könntest die Datei in eine Variable einlesen, anhand der Zeilenumbrüche in ein Array verwandeln, dieses dann invertieren und dann ausgeben:

    Ungetestet, aber vielleicht klappt's ja ...

    PHP-Code:
    $fp fopen ($filename"r") or die ("error when reading $filename"); // Datei zum Lesen öffnen
    $fileContent fread($fpfilesize($filename));                       // Datei-Inhalt einlesen
    fclose($fp);                                                          // Datei schliessen

    $fileContentElements explode("\r\n",$fileContent);                  // Datei-Inhalt anhand der Zeilenumbrüche 
                                                                          // als Elemente in ein Array schieben
    array_flip($fileContentElements);                                     // Array umdrehen

    while(list($key,$val) = each($fileContentElements)){                  // Array-Elemente ausgeben
        
    echo $val;                                                     


  10. #10
    TP-Specialist Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Avatar von Stuck Mojo
    Registriert seit
    Feb 2001
    Ort
    Helmstedt/Wolfsburg
    Beiträge
    4.108
    ähm... array_flip() vertauscht den Schlüssel und den Wert eines Arrays. Was Lars meint ist array_reverse()

    Und eine Datei zeilenweise in ein Array einlesen funkioniert einfacher mit:
    PHP-Code:
    $fileContentElements file($filename); 
    Gruss Jan

    ps: genau den gleichen Fehler (mit flip und reverse) hab ich heute auch schon gemacht

  11. #11
    TP-Greis Lars bringt sich richtig ein
    Registriert seit
    Jun 2001
    Beiträge
    5.468
    Original geschrieben von Stuck Mojo
    genau den gleichen Fehler (mit flip und reverse) hab ich heute auch schon gemacht
    Dann bin ich ja beruhigt.

  12. #12
    TP-Veteran manuelito hilft, wo's geht manuelito hilft, wo's geht manuelito hilft, wo's geht Avatar von manuelito
    Registriert seit
    Sep 2002
    Beiträge
    1.229
    Hi,

    also vielen Dank für die vielen und schnellen Lösungsvorschläge, ihr seid echt super, und das noch um diese Zeit *staun*.

    Ich werd mir das ganze morgen anschauen und dann bescheid geben, obs geklappt hat

    Und jetzt *gähn*...schlafen

    gudneit
    Wer sabotiert eigentlich ständig meine Signatur?

  13. #13
    TP-Veteran manuelito hilft, wo's geht manuelito hilft, wo's geht manuelito hilft, wo's geht Avatar von manuelito
    Registriert seit
    Sep 2002
    Beiträge
    1.229
    Hi,

    bei mir hats nicht ganz geklappt, liegt wohl daran dass ich dieses file() nicht raffe. Wenn ich diese Funktion brauche, ist dann der ganze Text zeilenweise eingelesen und in einem Array ? Kann ich dann, wenn

    PHP-Code:
     $content file($filename); 
    den Code so auslesen:

    PHP-Code:
     print $content[0]; 
    ?
    Hat bei mir nicht geklappt
    Weil dann könnte ich ja einfach die Zeilen zählen und dann die 5 letzten jeweils ausgeben lassen, dann kann ich nicht nur bestimmen, wieviel ich ausgeben will, sondern ich könnte sie sogar mischen, ohne Reihenfolge.
    Aber eben..könnte, dieses file() funzt ja nicht ganz..

    Gibts dafür eine Erklärung ?
    Wer sabotiert eigentlich ständig meine Signatur?

  14. #14
    TP-Greis Lars bringt sich richtig ein
    Registriert seit
    Jun 2001
    Beiträge
    5.468
    Probiere es mal so, das sollte Dir die letzten fünf Datensätze ausgeben (den Kram mit file() habe ich rausgelassen):

    PHP-Code:
    $fp fopen ($filename"r") or die ("error when reading $filename"); // Datei zum Lesen öffnen
    $fileContent fread($fpfilesize($filename));                       // Datei-Inhalt einlesen
    fclose($fp);                                                          // Datei schliessen

    //$fileContentElements = file($filename);                             // Das wäre Stuck Mojos Variante gewesen

    $fileContentElements explode("\r\n",$fileContent);                  // Datei-Inhalt anhand der Zeilenumbrüche 
                                                                          // als Elemente in ein Array schieben
    array_reverse($fileContentElements);                                  // Array umdrehen

    for($=0;$i<4$i++){                                                    // Nur fünf Werte ausgeben
        
    while(list($key,$val) = each($fileContentElements)){          // Array-Elemente ausgeben
            
    echo $val;                                                     
        }


  15. #15
    TP-Veteran manuelito hilft, wo's geht manuelito hilft, wo's geht manuelito hilft, wo's geht Avatar von manuelito
    Registriert seit
    Sep 2002
    Beiträge
    1.229
    HI,

    schade, geht irgendwie nicht. Den kleinen Fehler hab ich noch ausgebügelt, aber das mit den letzten fünf funzt nicht ganz.¨

    Ich werd da jetzt noch n Stündchen rumprobieren, vielleicht find ich ja selber noch was

    Bis dann ist das mal erledigt

    Anyway vielen Dank für eure Hilfe !

    cu
    Wer sabotiert eigentlich ständig meine Signatur?

+ Antworten
Seite 1 von 2 1 2 LetzteLetzte

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51