以下代码,会搜索文件中以 * 开头的行,并且读取它后面的第三行。(而其他无用的行有多少,无关精要)
[Fortran] 纯文本查看 复制代码 program find_close
implicit none
integer m,i,k
integer :: sol , country
integer , allocatable :: site(:)
real , allocatable :: lat(:) , long(:)
character(len=32) :: c
open(8,file="soil.sol")
open(10,file="find_close.txt")
!read(8,*)m !//m无法再文件中获取,需手动输入或获取文件行数减去3,得到。
m=414503 !//m 此时的含义为,有多少个数据(而不是有多少行)
allocate(site(m),lat(m),long(m))
O:Do i = 1 , m
do
Read(8,'(a)',iostat=k) c
if ( k/=0 ) exit O
if ( c(1:1) == '*' ) exit
end do
Read(8,*)
read(8,*) site(i) , country , lat(i) , long(i) , sol
write(10,*) site(i) , country , lat(i), long(i) , sol
End Do O
end program find_close
|