MichaelR: + Datei open/seek/read/write ??

Beitrag lesen

Hallo,

ich hab' da ein kleines Problem:

  1. ich will eine Textdatei mit perl öffnen, Daten reinschreiben, und wieder schließen. Das geht prima mit:

open (ID, ">$db_id_file_name_franz1") or &cgierr("error [...]");
if ($db_use_flock) {flock(ID, 2)  or &cgierr("fehler [....]");}
print ID ("bla");
close ID;
}

  1. jetzt soll aber diese Datei vorher geöffnet werden, ihr Inhalt* ausgelesen werden, in eine Variable zwischen gespeichert werden, die Datei wieder geschlossen werden; der Wert der Variable soll dann in dem unter 1) genannten Schreibprozess in die gleiche Datei wieder geschrieben werden.

* Diese Variable (Inhalt der Datei) ist irgendeine Zahl zwischen 1 und X. Also z. B. 1, 5, 19, 35 etc.

Um diesen Inhalt zu lesen dachte ich mir:

read the current file value

$CurrNum = 0;
open (ID, ">$db_id_file_name_franz1") or &cgierr("error [...]");
seek (ID, 0, 0);
read (ID, $CurrNum, 1);
close ID;

Die so gelesene Variable $CurrNum soll dann um eins erhöht werden:

$CurrNum = $CurrNum+1;

  1. Allerdings gibt's da 'n Problem:

a) da ich nicht weiß ob der Dateiinhalt ein- oder zweistellig (oder dreistellig) ist, kann ich die Länge bei read() nicht fest vorgeben.

b) Es scheint so - auch wenn ich als Länge 1 verwende - dass nichts aus der Datei gelesen wird, weil immer der initialisierte Wert von $CurrNum im Schreibprozess in die Dateigeschrieben wird.

Kann mir da bitte jemand helfen ?

Danke

Michale