Schreiben Sie in Fortran eine vorhandene Datei, ohne sie zu überschreiben

8

Ich habe eine existierende Datei geschrieben von einem Fortran-Programm (formatiert) und möchte am Anfang der Datei einige Zeilen hinzufügen. Die Idee ist, dies zu tun, ohne eine Kopie der Originaldatei zu erstellen.

Ich könnte am Ende der Datei eine Zeile hinzufügen mit:

%Vor%

aber als ich es versuchte:

%Vor%

überschreibt die ganze Datei.

Es könnte unmöglich sein. Zumindest wäre es mir eine Bestätigung, dass es tatsächlich unmöglich ist.

    
maxhaz 25.10.2013, 07:48
quelle

3 Antworten

4

Ja, das ist unmöglich. Mit position= setzen Sie nur die Schreibposition. Normalerweise löscht man einfach alles, was hinter dem aktuellen Datensatz liegt, indem man in eine sequentielle Datei schreibt. Sie können möglicherweise einen Datensatz am Anfang in einer Datei mit direktem Zugriff anpassen, aber auch nicht einfach etwas am Anfang hinzufügen. Sie müssen zuerst eine Kopie erstellen.

    
Vladimir F 25.10.2013, 08:03
quelle
0

Wenn Sie nicht formatierte Daten verwenden und wissen, wie viele Zeilen zu erwarten sind, versuchen Sie es mit der Direktzugriffsdatei read / write. Dies hat das Potenzial, Informationen für jede Zeile in einem "Datensatz" zu speichern, auf den später ähnlich wie bei einem Array zugegriffen werden kann.

Um an den Anfang anzufügen, erstellen Sie einfach so viele leere Datensätze, wie Sie Zeilen in Ihrem "Header" am Anfang der Datei haben, dann gehen Sie zurück und ändern Sie ihre Werte auf die tatsächlichen Zeilen, die sie später sein sollen .

Beispiel für die Direct Access-Datei io:

%Vor%

code source, siehe Abschnitt "Direktzugriffsdateien": Ссылка

    
abby sobh 19.11.2014 15:27
quelle
-1

Es ist möglich !!! Hier ist ein Beispielprogramm, das die Aufgabe erfüllen könnte.

%Vor%     
Sathyam 17.10.2014 07:10
quelle

Tags und Links