Непосредственно читать определенную строку на фортране

Я хочу прочитать определенную строку файла, например 3-я строка файла input.dat. Мой нынешний код:

Program Read_a_line
Implicit None
Integer:: i
Real*8:: x,y    

open (10, file='input.dat', status='old')

do i=1,3
  read (10,*) x, y 
end do

  print*,'x=',x,' y=',y



End Program Read_a_line

Однако код считывает все данные, пока не достигнет 3-й строки. Можем ли мы просто прочитать третью строку? Можем ли мы прочитать несколько конкретных строк, например. только 2-я и 4-я строки.

Доступные в Интернете примеры делают аналогичный трюк. Мне было интересно, существует ли прямой путь в современной версии фортрана.

Мне немного любопытно!


person hbaromega    schedule 20.11.2014    source источник
comment
несколько лучше ничего не читать в строках, которые вы хотите игнорировать, do i = 1,2 ; read(10,*) ; end do ; read (10,*) x, y. Это, кстати, не особенность. Вы должны сделать то же самое на большинстве других языков, с которыми я знаком.   -  person agentp    schedule 20.11.2014


Ответы (1)


если у вас есть записи фиксированного размера, вы можете найти нужную точку

см. также Могу ли я переместить указатель файла в определенное (байтовое) место в отформатированном файле?

person pm100    schedule 20.11.2014
comment
Гораздо проще, если файл отформатирован, прочитать две строки и проигнорировать их. - person High Performance Mark; 20.11.2014