Bestimmte Zeilen in TXT-Datei ändern

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

  • Bestimmte Zeilen in TXT-Datei ändern

    hallo,

    wie kann ich bestimmte zeilen aus einer txt-datei ändern ?
    meine textdatei sieht z.b. so aus:

    14.02.2002;News-Ueberschrift;News-Text
    12.02.2002;News-Ueberschrift;News-Text
    05.02.2002;News-Ueberschrift;News-Text

    wie kann ich jetzt z.b. den News-Text vom 12.02.2002
    ändern ?

    vielen dank im voraus !


  • #2
    $file = file("test.txt");
    $i=0;
    foreach($file as $zeile){
    $news = explode(";",$zeile);
    if($news[0] == "05.02.2002") unset($file[$i]);
    $i++;
    }
    jetzt haste in $file die datei ohne die zu löschende Zeile
    kannste wieder in der Datei speichern...
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      hmmm,

      tut mir leid, aber ich verstehe das nicht.
      kannst du das vielleicht näher erläutern ?
      Danke erstmal für die schnelle antwort

      ps: bin anfänger.

      Kommentar


      • #4
        na Du liest die datei ein mit file()
        dann bekommste ein array in dem alle zeilen der Datei drin sind
        dann die einzelnen zeilen nach dem trennzeichen trennen in ein anderes array (news)
        in $news[0] steht jetzt das Datum
        wenn das Datum gleich dem zu löschenden ist dann unset() die komplette Zeile ($file[$i])
        in dem array $file steht jetzt die komplette Datei OHNE den zu löschenden Datensatz
        Beantworte nie Threads mit mehr als 15 followups...
        Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

        Kommentar


        • #5
          hmm achso.

          ich verstehe das so, das mit das script
          die ganze zeile löscht. ich will aber nicht löschen,
          sondern nur den News-Text z.b. abändern.

          aber irgendwie funzt dein script nicht.
          es löscht mir nicht nur den datensatz mit 05.02.2002
          sondern alles.

          ist das nun der zweck dieses scripts, oder verstehe ich das falsch ?

          vielen dank nochmal

          Kommentar


          • #6
            ups ändern...
            na dann:
            $file = file("test.txt");
            $i=0;
            foreach($file as $zeile){
            $news = explode(";",$zeile);
            if($news[0] == "05.02.2002") $news[2]="neuer Text";
            $zeile=implode(";",$news);
            $i++;
            }
            und eigentlich löäscht das nicht die ganze datei. Die Datei hab ich noch nicht angefasst
            Beantworte nie Threads mit mehr als 15 followups...
            Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

            Kommentar

            Lädt...
            X