Имам двоичен файл, който бих искал да прочета с Fortran. Проблемът е, че не е написан от Fortran, така че няма индикатори за дължина на записа. Така че обичайното неформатирано четене на Fortran няма да работи.
Имах мисъл, че мога да бъда подъл и да прочета файла като форматиран файл, байт по байт (или 4 байта по 4 байта, всъщност) в масив от знаци и след това да конвертирам съдържанието на знаците в цели числа и плаващи числа чрез трансферната функция или страшното твърдение за еквивалентност. Но това не работи: опитвам се да прочета 4 байта наведнъж и според POS изхода от оператора inquire
, четенето прескача около 6000 байта или така и масивът от знаци се зарежда с боклуци.
Така че това е забранено. Има ли подробности в този подход, които забравям? Или има просто фундаментално различен и по-добър начин да направите това във Fortran? (BTW, аз също се опитах да прочета в масив integer*1
и масив от байтове. Въпреки че тези кодове се компилираха, когато се стигна до инструкцията за четене, кодът се срина.)