我有一个包含 1000 个数字的文件,例如:
0000
0032
1201
: :
: :
: :
2324
根据输入参数“n”,我想从该文件中从行号“n”到“n+m-1”读取“m”个数字。
任何想法如何在 Fortran 中做到这一点?
我有一个包含 1000 个数字的文件,例如:
0000
0032
1201
: :
: :
: :
2324
根据输入参数“n”,我想从该文件中从行号“n”到“n+m-1”读取“m”个数字。
任何想法如何在 Fortran 中做到这一点?
我不知道您是否自己尝试过,但这是一个最小的示例:例如,您的输入文件如下所示:
0000
0032
1201
1234
4567
7890
2324
使用此代码(阅读后)
Program jhp
Implicit None
integer :: i
integer, parameter :: &
m=7, & !total number of line
n=4, & !line to skip
p=3 !lines to read
integer,dimension(m)::arr !file to read
open(12,file='file_so',status='old')
do i=1,n
read(12,*)arr(i)
end do
do i=1,p
read(12,*)arr(i)
write(*,*)arr(i)
end do
End Program jhp
这会跳过前 n 行,然后读取 p 行。希望有帮助
或许,
open (unit, file ...)
do i=1,n
read(unit,*) crap
end do
do i =n,n+m-1
read(unit,*) whatever
end do
close(unit)
就是你要找的。这是未尝过的,但可能会给你一个机会。
编辑:直接访问更适合这种类型的工作:刚刚意识到,虽然这是最简单的,而不是首选的。您可以在直接访问模式下打开文件并完成您的工作:
OPEN( unit, file, ACCESS='DIRECT', RECL=100, FORM='FORMATTED')
READ( unit, *, REC=n, ERR=10 ) x