私はFortranプログラム(書式付き)によって書かれた既存のファイルを持っており、ファイルの先頭にいくつかの行を追加したいと思います。アイデアは元のファイルのコピーを作成せずにそうすることです。Fortranで上書きせずに既存のファイルに書き込む
私は、ファイルの末尾に行を追加することができます。
open(21,file=myfile.dat,status='old',action='write',
form='formatted',position="append")
write(21,*) "a new line"
が、私が試したとき:
open(21,file=myfile.dat,status='old',action='write',
form='formatted',position="rewind")
write(21,*) "a new line"
それは全体のファイルを上書きします。
可能性があります。 少なくとも、私はそれが事実上不可能であることを確認することがうれしいです。
をしかし、あなたはで全体をメモリに古いファイルを読む必要はありません。一度。 OSを使用して、古いファイルの名前を一時ファイル名に変更します。次に、古いファイル名を使用して新しいファイルを作成し、必要なデータを入れます。次に、古いファイルを新しいファイルに追加します。 (OSやファイルのデータの性質によっては、OSでそのデータを実行できるかもしれません。) – dmm
「最初にコピーを作成する」にはあなたの状況も含まれます。 –