Как пропустить байты в файле, прочитанном с использованием потока - PullRequest
1 голос
/ 15 марта 2011

Я пытаюсь прочитать некоторые несмежные поля из данных фиксированной длины, используя Fortran. Я хотел бы прочитать (поток) из двоичного файла массив из 4 байтовых чисел, каждое из которых разделено 6 байтами (то есть читать 4 байта, пропускать 6 байтов, читать 4 байта, пропуск 6 байтов, ...). Я мог бы использовать фиктивную переменную размером 6 байт; однако мне было интересно, есть ли в операторе read возможность пропустить байты после чтения каждого элемента массива. Заранее спасибо за помощь.

Эрик

1 Ответ

1 голос
/ 15 марта 2011

Я думаю, что вы ищете файлы прямого доступа: Файлы прямого доступа .Здесь вы указываете количество байтов на запись в операторе OPEN, а затем указываете, какую запись читать в вашем операторе READ.В вашем случае длина записи будет 10 байтов, и вы будете использовать только первые 4 байта каждой записи.

Лично я бы просто использовал фиктивную переменную и оператор формата.Я думаю, что это сделало бы окончательный код более ясным, и я не думаю, что будет какое-либо снижение производительности.

...