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
Завършете част 2130
Пълна част
unformatted
130
Непълна част (окончателна)Начален знак на незавършена частОтварящ символ на непълна частНомер1
fortran
fortran
Съдържание на непълната частДанните се съхраняват в непълна частМасив байта
unformatted
Краен знак на непълна частЧастичен терминаторНомер1
файлове
Блок 2Завършете част 1130
като
Завършете част 2130
Пълна част
unformatted
130
Непълна част (окончателна)
като
Блок
като
Завършете част 1130
файлове
Завършете част 2130
Пълна част
fortran
130
Непълна част (окончателна)
fortran
Символ за крайСимвол за затваряне на файлСимвол1, (код 82 )

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

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

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

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

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

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

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

Забележка.

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

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

Забележка.

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

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

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

Бележки.

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

Бележки.

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

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

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

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

Забележка.

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

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

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