Fortran файлове като Unformatted frundWiki

Неформатираните файлове се създават от програми и програмни модули, написани на езика Fortran. Тези файлове са двоични (двоични) и в същото време имат специална вътрешна структура, която не позволява директно четене и писане на файлове от този тип (пренебрегвайки тази структура) от програми, написани на други езици (например C ++).

В изчислителното ядро ​​и библиотеките за предварителна и последваща обработка на системата FRUND, написани на езика Fortran, се използват редица файлове от неформатиран тип:

Структурата на неформатираните файлове

Неформатираните файлове се различават от обикновените двоични файлове по това, че имат определена вътрешна структура. Съдържанието на такива файлове е разделено на няколко последователни блока. Един блок е набор от данни, които се формират в неформатиран файл, когато се извика следващата функция за запис. При четене съдържанието на неформатиран файл също се чете на цели блокове (дори ако функцията за четене се опитва да прочете по-малко данни, отколкото се съдържат в четения блок).

Структура на GNU Fortran (GFortran) неформатирани файлове

Следната таблица показва структурата на GFortran неформатиран файл.

Раздел Описание Тип Дължина, байтове Стойност
Избройте блоковеБлок 1Символ за начало на блокСимвол за отваряне на блокНомер4
като
като
1)
Блок съдържаниеДанни, съхранявани в блокМасив байта
файлове
—
Краен знак блокБлок терминаторНомер4
като
Блок 2Символ за начало на блок……4
като
файлове
Блок съдържание……
файлове
—
Краен знак блок……4
fortran
……………
Блок
файлове
Символ за начало на блок……4
като
като
Блок съдържание……
unformatted
—
Краен знак блок……4
fortran

Така дължината на неформатиран GFortran файл е:

файлове
, където

Структура на неформатирани файлове на Intel Fortran / Fortran PowerStation

Неформатирани файлове, създадени от програми или добавки, компилирани с компилаторите Microsoft Fortran PowerStation или Intel Fortran (с опцията Use PowerStation I/O Format, зададена на Yes; съответният ключ на компилатора е /fpscomp:ioformat) имат малко по-сложна структура. В такива файлове съдържанието на всеки блок е разделено на няколко части. Всяка част съдържа не повече от 128 байта данни.

Следващата таблица показва структурата на неформатиран файл във формат PowerStation.

Раздел Описание Тип Дължина, байтове Стойност
Стартов знакСимвол за отваряне на файлСимвол1K (код 2) 4B )
Избройте блоковеБлок 1Завършете част 1Начален знак на пълната частНачален символ на пълната частСимвол1
unformatted
fortran
код 81
Съдържание на пълната частДанните се съхраняват в пълната частМасив байта128—
Краен знак на пълната частЗавършващ символ на пълната частСимвол1код 81
Завършете част 2…………130…
………………
Пълна част
unformatted
…………130…
Непълна част (окончателна)Начален знак на незавършена частОтварящ символ на непълна частНомер1
fortran
fortran
Съдържание на непълната частДанните се съхраняват в непълна частМасив байта
unformatted
—
Краен знак на непълна частЧастичен терминаторНомер1
файлове
Блок 2Завършете част 1…………130
като
…
Завършете част 2…………130…
………………
Пълна част
unformatted
…………130…
Непълна част (окончателна)…………
като
…
……………
Блок
като
Завършете част 1…………130
файлове
…
Завършете част 2…………130…
………………
Пълна част
fortran
…………130…
Непълна част (окончателна)…………
fortran
…
Символ за крайСимвол за затваряне на файлСимвол1, (код 82 )

Така дължината на неформатиран PowerStation файл е:

файлове
, където

Работа с неформатирани файлове във Fortran

От гледна точка на програмист на Fortran, работата с файлове от тип Unformatted практически не се различава от работата с други типове файлове (например текстови файлове).

Файловите функции на Fortran осигуряват поддръжка за блокова структура на неформатирани файлове. Програмистът зависи правилно да обработва функциите, свързани с блокове, в програми, написани на езици, различни от Fortran (като C++).

Отваряне и затваряне

Отварянето на неформатиран файл се извършва с помощта на функцията OPEN:

Забележка.

Когато се отвори за писане, начален знак се записва в неформатиран файл във формат PowerStation.

Затварянето на неформатиран файл се извършва с помощта на функцията CLOSE:

Забележка.

Когато затворите записваем неформатиран файл във формат PowerStation, в него се записва затварящ знак.

Писане и четене

Следващата част от данните се записва в неформатиран файл с помощта на функцията WRITE:

Бележки.

Четене на данни отСъздава се неформатиран файл с помощта на функцията READ:

Бележки.

Спомагателни навигационни процедури

Когато четете неформатиран файл, можете да използвате редица функции, за да улесните навигацията във файла. Те осигуряват движение на позицията на курсора за четене, като се вземе предвид блоковата структура на файла от тип неформатиран.

Върнете се в началото на файла

Връщането в началото на файла става с помощта на функцията REWIND:

Забележка.

При връщане към началото на файла, курсорът за четене се позиционира в началото на първия блок.

Върнете се в началото на предишния блок

Връщането в началото на предишния блок (т.е. преместване на курсора за четене в началото на предишния блок) се извършва с помощта на функцията BACKSPACE: