Klaus Mock: Problem mit Dateilänge (Optimierungsfrage...)

Beitrag lesen

Hallo,

Ich verstehe nicht, warum Du es so kompliziert machst.
Ich würde entweder Datei A komplett in den Speicher lesen, und dann den Speciherinhalt wieder zruück in die Datei schreiben. Das geht natürlich nur , wenn Die Datei nicht wirklich groß ist.
Oder Du öffnest die erste lesend, die zwiete schreibend, überträgst die Daten also von A nach B. Und wenn Du fertig bist, löscht Du a und benennst b auf a um.

In beiden Fällen ersparst Du Dir den zweiten lese/schreib-Vorgang.

fürs löschen siehe bitte
perldoc -f unlink

fürs umbenennen
perldoc -f rename

Meine Frage nun: gibt es eine Variable oder eine Funktion von der ich einen Wert bekomme, der mier sagt, wieviele Bytes ich am Stück in eine Datei (in diesem Fall Datei B) geschrieben habe!?

Die Funktion heißt stat. oder Du verwendest -s:
$filesize = -s HANDLE_TO_FILE_B;

Du kannst auch nach dem schreiben aller Daten nach B mit tell() die aktuelle Position im File abfragen.

Aber, wie gesagt, ich würde es nicht so kompliziert machen.

Grüße
  Klaus