PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Perl seek



Ruby
21-01-2002, 16:45
Hallo!

Ich hab folgendes Problem:

Mein Programm soll an eine bestimmte Stelle in einer Datei es einfügen.
Dazu verwende ich den Befehl seek (dies ist nur eine) :


#!c:\perl\bin\perl.exe -w

open USER, ">>c:\\datei.txt";

seek(USER, 3, 0);

$tell = tell USER;

print $tell;

$ausgabe = "bla";

print USER $ausgabe;


Er gibt mir bei print $tell: 3 aus
und schreibt mir die $ausgabe ans Ende und nicht an die dritte stelle vom Anfang der Datei.
Das versteh ich nicht, kann mir jemand helfen das Problem zu lösen?

Bertram

Sion
21-01-2002, 17:30
Original geschrieben von Ruby


#!c:\perl\bin\perl.exe -w

open USER, ">>c:\\datei.txt";


Er gibt mir bei print $tell: 3 aus
und schreibt mir die $ausgabe ans Ende und nicht an die dritte stelle vom Anfang der Datei.
Das versteh ich nicht, kann mir jemand helfen das Problem zu lösen?

Bertram

Hab grad mein Perl buch nicht da, aber ich glaube du öffnest die Datei schon falsch, im reinen Append-Modus. Damit kannst du nur am Schluß Anhängen bzw. bliebig lesen, aber nicht beliebig schreiben! Das mit dem Einfügen wüde sowieso nicht so klappen, er würde Teile der Originaldatei überschreiben.

Ließ halt die Datei ein, schreib sie bis zur zu Ändernden Stelle in die Datei zurück, dann den einzufügenden Text, dann den Rest der Originaldatei.

Gruß, Sion