2009-03-02 15 views
1

Ich versuche ein formatiertes 2D-Array von einer Datei auf der Festplatte in eine Variable zu lesen. Ich habe die Schreiboperation, die ziemlich einfach ist, aber ich bleibe beim Lesen der gleichen Datei. Könnte mich jemand auf eine Probe/eine Beschreibung hinweisen, wie man das macht? Das Netz scheint gesättigt zu sein, aber ich finde keinen nützlichen Artikel.Lesen eines formatierten Arrays in eine Variable aus einer Datei

Der Grund für die formatierte Datei ist übrigens, sie lesbar zu halten, da sie Konfigurationsoptionen enthält.

Antwort

2

Ich habe tatsächlich festgestellt, dass die physische Dokumentation, die mit dem Compiler geliefert wird, in der Regel die lesbarste und informativste für Fortran-Compiler ist. Natürlich ist das keine Option, wenn Sie G95 oder etwas ähnliches verwenden.

Hier ist ein pretty good page beschreibt die meisten technischen Spezifikationen der Leseanweisung. Insbesondere, siehe den Abschnitt "Format Edit Descriptors" - sehr praktisch.

Auf einer Seite beachten, wenn Sie die genaue Schreibformatstring haben, können Sie in der Regel, dass in einem Leseformatstring fallen, aber wenn Sie mit WRITE(*,*) oder so etwas zu schreiben, werden Sie wahrscheinlich nicht ein gültiges Zu verwendende Formatanweisung schreiben.

Schließlich, wenn Sie diese in ASCII, so dass die Leute es lesen können, und Sie müssen sich keine Sorgen über die Rückwärtskompatibilität sorgen, in Betracht ziehen, alles als Felder mit fester Länge auszugeben, da sie bei weitem am einfachsten sind Dinge zu lesen in.

Sorry, ich kann nicht an bessere Online-Ressourcen denken, aber Fortran ist bedauerlicherweise im Internet unterdokumentiert. Ich erinnere mich, einmal überprüft zu haben, ob G95 Fortran Referenzdokumente hatte, aber sie haben meistens nur Dokumente für ihre spezifischen Compilereinstellungen. Viel Glück, aber!

+0

Danke Mike, ich hatte eigentlich nur diese Seite durchgelesen. Ich denke, ich bin nah dran. Ich stoße gerade auf einen Ende-des-Datensatz-Fehlers. Ahh, der Spaß einer neuen Sprache :) – ccook

+0

Sorry, das Ende der Datei ist der Fehler – ccook

+0

Wenn Sie eine festgelegte Satzlänge angeben, müssen Sie wahrscheinlich nicht - Lesen und Schreiben von ASCII ist in der Regel nicht mit getan Rekordgrößen, aber es gibt immer Ausnahmen :) Wenn Sie EOF treffen, bevor Sie denken, dass Sie sollten, ist das eine andere Geschichte. – Mike

Verwandte Themen