Christoph: Zeichenkette Loeschen und den Rest wieder Speichern

Hi zusammen,

Bin dabei mir nen Newsletter zu schreiben und stecke momentan bei der function Mitglieder loeschen fest.
Ich hab alle Mitglieder in einer Datei als Array geispeichert der so aussieht:

Name|Email|Tag|Uhrzeit
Name|Email|Tag|Uhrzeit
Name|Email|Tag|Uhrzeit

Nach dem ich den File eingelsen habe Splitte ich ihn via explode(), und werend dessen lasse ich mir das Gesuchte Mitglied via eregi() suchen und loesche dann den Kompletten Array um die ganzen Informationen des Mitglied aus der Datei zu loeschen.

Problem ist nun aber das Speichern der Restlichen Strings.Wenn ich den String [0] aus dem Array des Files nehme kann ich ihn Problem los Loeschen und den file wieder Speichern ohne das mir die anderen Mitglieder Informationen verloren gehen.Wenn ich allerdings den String [1] nehme gehen mir die Informationen von String [0] verloren bei String [2] die Informationen von String [1] und [0] und immer so weiter.

Wie kann ich verhindern das mir die Informationen verloren gehen?
Vieleicht durch rewind() ?

Ich hab euch den Ausszug vom Script mit Gepostet:

if($delete)
{
 $datei = file("user.dat","w");
 $z=count($datei);

for($i=0;$i<$z;$i++)
 {
  while(list($k, $v)= each($datei))//Splitten
  {$inhalt=explode('|',$v);
   $del = eregi(trim($suche),$v);//suchen

if($del)//wenn gefunden
   {
    echo "Gefunden!<br>";
    unset($v);//Ganze Zeile Loeschen

if($datei)
    {
     for($i=0;$i<count($datei);$i++)
     {
      while(list($k, $v)= each($datei))
      {
       echo "Jetzt: $v<br>";
       $datei=fopen('user.dat', 'w');//öffnen
       fputs($datei, $v);//Neue Daten Speichern
       fclose($datei);
      }
     }
    }

}
  }

}

}

Wär nett wenn mir jemand weiterhelfen kann.

Danke alle.

MfG Christoph

  1. Hi zusammen,

    Wenn das Posting von gerade keiner versteht versuche ich es so nochmal:

    Ich möchte gerne aus einer Datei einen bestimmten String loeschen und dann die Restlichen Strings wieder speichern.
    Wie geht das???

    Wär nett wenn ihr mir nun weiterhelfen könnt.

    MfG Christoph

    1. Hallo,

      Ich möchte gerne aus einer Datei einen bestimmten String
      loeschen und dann die Restlichen Strings wieder speichern.
      Wie geht das???

      Eine temporaere Datei erstellen und dann die Eingabe-Datei
      einlesen und gleichzeitig in die neue Datei schreiben, bis du
      zu der entsprechenden Zeichenfolge gekommen bist. Dann den
      Teil ueberspringen und danach dann einfach den Rest weiter
      in die temporaere Datei schreiben. Wenn du am Datei-Ende der
      Eingabe-Datei angelangt bist, beide Dateien schliessen und
      die temporaere Datei umbenennen in die Orginal-Datei.

      Natuerlich musst du darauf achten, dass du die Zugriffe
      synchronisierst.

      Gruesse,
       CK

      1. Hi,

        Eine temporaere Datei erstellen und dann die Eingabe-Datei
        einlesen und gleichzeitig in die neue Datei schreiben, bis du
        zu der entsprechenden Zeichenfolge gekommen bist. Dann den
        Teil ueberspringen und danach dann einfach den Rest weiter
        in die temporaere Datei schreiben. Wenn du am Datei-Ende der
        Eingabe-Datei angelangt bist, beide Dateien schliessen und
        die temporaere Datei umbenennen in die Orginal-Datei.

        Natuerlich musst du darauf achten, dass du die Zugriffe
        synchronisierst.

        Klingt Kompliziert!Aber hat durchaus geholfen.

        MfG Chris

        1. Hallo,

          Klingt Kompliziert!

          Kompliziert ist lediglich die Synchronisation ueber
          Prozess-Grenzen hinweg (IMHO eine der kompliziertesten Sachen,
          die es in der Informatik gibt). Aber dafuer gibt es ja zum
          Glueck vorbereitete Tools (flock, fcntl) :)

          Aber hat durchaus geholfen.

          Schoen.

          Gruesse,
           CK