roman lenz: an den datei anfang schreiben

hi hi

ich möchte an den anfang einer datei noch was schreiben.
mit seek kann ich den dateizeiger an den Anfang der datei setzen.

kann ich ssek auch mit printf verwenden?
mit meiner format anweisung klappt es leider auch nicht.

Wie kann ich an den Anfang einer Datei schreiben??

sub schreib_kopf {
 open(DAT,'>> '.$DIRsave.'werte.txt') || ($meld="Werte schreiben",&kill());
    seek(DAT,1,0);
format STDOUT =
       Datum: @<<<<<<<<<<<<<<<<<<<<<<<<<<<   OEM: @<<<<<<<<<<
$CTIME,$oem
.
  write;

close(DAT);

besten dank

bis bis roman

  1. hi hi

    so klappt es halbwegs nur leider wird mein dateianfang überschrieben und nicht ergänzst.

    sub schreib_kopf {
      open(DAT,'+< '.$DIRsave.'werte.txt') || ($meld="Werte schreiben",&kill());
        seek(DAT,0,0);
        printf DAT "#       Datum: %-25s      OEM: %s\n",$CTIME,$oem;
        seek(DAT,0,2);
        printf DAT "# EOF";

    }  #----Subende----

    hat noch jemand eine idea

    besten dank

    bis bis roman

    1. Halihallo roman

      hat noch jemand eine idea

      Daten lassen sich a) nur überschreiben, oder b) ans Ende anhängen, ggf. c) auslesen.
      Etwas anderes gibt es nicht. Wenn du also Daten wirklich an den Beginn der Datei
      anfügen möchtest, bist du gezwungen die ganze Datei neu zu schreiben. Mit anderen Worten:
      Deine Daten in die Datei schreiben und die bisherigen Daten aus einem Puffer daran an-
      zuhängen. Da ich grundsätzlich von dieser ressourcenfressenden Variante abrate, möchte
      ich dich fragen, ob es _wirklich_ nötig ist, die Daten an den Begin der Datei zu
      schreiben.

      Viele Grüsse

      Philipp

      --
      RTFM! - Foren steigern das Aufkommen von Redundanz im Internet, danke für das lesen der Manuals.
      Selbstbedienung! - Das SelfForum ist ein Gratis-Restaurant mit Selbstbedienung, Menüangebot steht in den </faq/> und dem </archiv/>.
      1. Hallo Philipp

        dank dir für deine antwort

        ich werde noch etwas überlegen und dann einen anderen weg gehen :-)

        bis bis roman