Hotkey: lesen und schreiben in dateien

Hi, ich bins schon wieder

also ich habe eine frage zu den dateioperationen von perl.

ist es möglich mit perl eine datei zum schreiben öffnen, nach bestimmten werten in der datei zu suchen, und diese dann zu überschreiben. mit anderen worten, kann man eine datei gleichzeitig
zum lesen und schreiben öffnen ?

ich weiss nur von folgenden funktionen:

open (DATEI, "<datei.txt");  #lesen
open (DATEI, ">datei.txt");  #schreiben
open (DATEI, ">>datei.txt"); #anhängendes schreiben.

ich will das eine teilnehmerliste per perl (cgi script) um einen neuen teilnehmer erweitert wird,
der sich durch ein formular anmeldet.

kann mir jemand weiterhelfen ?

p.s. verdammt cooles forum hier !!

  1. ist es möglich mit perl eine datei zum schreiben öffnen, nach bestimmten werten in der datei zu suchen, und diese dann zu überschreiben. mit anderen worten, kann man eine datei gleichzeitig
    zum lesen und schreiben öffnen ?

    öffne die datei zum lesen schreib es in ein array..  such nach dem was du suchst :)über schreibe das was du überschreiben willst (im Array oder bessergesagt in einem neuen arry)schliesse die datei (lesen) öffne die datei (schreiben) schreib das Array rein... somit hast du alle daten in der datei überschrieben... schliesse die datei :)

    ciao
    Ludwig

    <a href="http://www.cwd.at" onmouseover="self.location.replace('http://www.cwd.at')" target="_new">http://www.cwd.at" onmouseover=self.location.replace('http://www.cwd.at') target="_new</a>

  2. Moin Hotkey,

    open (DATEI, "<datei.txt");  #lesen
    open (DATEI, ">datei.txt");  #schreiben
    open (DATEI, ">>datei.txt"); #anhängendes schreiben.

    open (DATEI, "+>datei.txt"); # lesen und schreiben

    -> <a href="../../tgcj.htm" onmouseover="status='Ich hoffe, so geht's, Rufinus!'" target="_blank">../../tgcj.htm" onmouseover="status='Ich hoffe, so geht's, Rufinus!'" target="_blank</a>

    Falls der Link nicht funktioniert, bitte den hier benutzen: <../../tgcj.htm>!

    Gruß
    Dirk

    1. Hi,

      open (DATEI, "+>datei.txt"); # lesen und schreiben

      das stimmt zwar, hilft aber soweit ich weiß nicht wirklich. Ich habe es noch nie ausprobiert, verstehe den Befehl aber so, daß man sich einfach nur einen open-Befehl spart. Beim Schreibversuch werden also Datenverluste auftreten. Woher soll Perl sonst wissen, welche Daten überschrieben werden sollen? Eine Zeile? Die Zahl der Bytes, die der zu schreibende String hat? Alles ab der aktuellen Position?

      Die Methode von Ludwig ist schon sinnvoll. Lese die Daten erst in ein Array und schreibe anschließend neu. Oder Du schreibst zeitgleich (schont Arbeitsspeicher) in eine temporäre Datei und kopierst anschließend um.

      Cheatah