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