CSV Datei bearbeiten

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

  • CSV Datei bearbeiten

    Hallo,
    ich hänge im Moment mit einem Problem ziemlich in der Luft.

    Ich habe eine Datendatei in folgendem Format:

    |Var1|Var2|Var3
    |Var1|Var2|Var3
    .
    .
    .

    Jetzt würde ich gerne eine Zeile, sie entspricht einer News, aus der Datei löschen.

    Ich lese die Datei mit fgetcsv Zeile für Zeile aus:
    while ($data = fgetcsv ($fp,1024, "|")) {
    }

    Diese Zeile habe ich dann in einem Array und könnte über "isset" überprüfen, ob es die Zeile ist, die gelöscht werden soll. Nur wie lösche ich jetzt dieses Array und seinen Eintrag in der Datei ?
    Ich habe schon das Forum durchsucht, aber nichts gefunden was mir weiterhelfen würde. Für Hilfe wäre ich dankbar..

    PS: Eine Frage zu fgetcsv: Ich verstehe den Befehl so, daß er eine Zeile ausliest, ein Array bildet, man jetzt dieses Array bearbeiten kann und er dann in die nächste Zeile der Datei geht, das alte Array löscht und wieder ein neues bildet. Ist das so korrekt? fgetcsv bildet also kein komplettes Array für eine datei, welches man dann nach dem kompletten Auslesen bearbeiten kann? Ich schaffe es z.B. auch nicht auf das Array außerhalb der while-Schleife zuzugreifen...

    Gruß mhari

  • #2
    ein Weg wäre:
    Code:
    $resave_data=array(); //hier speicherst du die Werte/Zeilen zwischen
    while ($data = fgetcsv ($fp,1024, "|")) { 
      if ($data[0]!=$inhalt_fuer_loeschen) {  
      // $inhalt_fuer_loeschen steht für den Zeiger, das Zeile gelöscht werden soll, also ein Name, ID etc.
        $resave_data[]=implode($data,"|");
        } 
    }
    und dann eben den Inhalt von Array $resave_data in Datei reinschreiben. In diesem Array dürfte dann die zu löschende Zeile nicht mehr drin sein.

    P.S.: außerhalb der while-Schleife hast du nur zugriff auf die Daten, wenn du sie in einem anderen Array oder so speicherst, da bei jedem While-Durchgang die $data überschrieben wird.

    [Editiert von BrainBug am 06-12-2001 um 13:48]

    Kommentar


    • #3
      Dank Dir BrainBug !
      Hatte auch schon an das Zwischenspeichern gedacht, nur fehlte mir der richtige Ansatz.

      Gruß mhari

      Kommentar

      Lädt...
      X