我正在处理一个非常大的输入文件,但我需要的信息只在文件的一半开始。有没有办法在某一行开始读取输入文件?
我目前正在从文件开头读取每一行,只是为了跳过它,但这可能需要相当长的时间,具体取决于输入文件的大小。
implicit none integer :: i open(99, file = 'input.dat') do i=1, 10000 read(99,*) end do ! skips the first 10,000 lines of file input.dat
这是可行的,但当我想跳过95038000行时,这需要相当长的时间,因为我知道我想从哪一行开始阅读,有没有办法从那一行开始?
我的输入文件如下(…表示大致相同):
100 1 0.01 20000 20000 He 51.71286 -72.51866 -18.82236 He 26.74500 -55.83966 -21.50548 He 54.21926 10.26991 55.95801 ... He 53.88083 36.44334 -12.26679 He -73.74439 -15.63201 -73.70352 He -64.81084 -24.94384 -76.42190 100 2 0.01 20000 20000 He -75.32897 -18.60672 25.41119 He -26.30221 -58.53324 -61.39479 He -64.44293 -28.82557 -15.57422 ...