作者brucezmc (乱想)
看板Fortran
标题[问题] 不知道问题出在哪?
时间Fri Jul 30 10:17:08 2010
不好意思又来请教各位了
小弟目前尝试写读取资料的程式中
以下是我的程式码
program ho01
implicit none
character(len=75) :: line
real :: string1,string2
integer :: p,status,string3,i,sj
logical :: get,filename
data p /1/
open(10,file='home.txt',form='formatted',access='sequential')
open(20,file='200212.cwb',form='formatted',status='old',access='sequential')
read(20,'(bn,a75)') line
read(line(15:22),'(bn,f6.2)') string1
read(line(23:30),'(bn,f7.2)') string2
read(line(67:69),'(bn,i2)') string3
! filename = (filename >= 200204) .and. (filename <=200212)
get = (string1 >= 2300.00) .and. (string1 <= 2400.00) .and. (string2 >= 12000.00) .and. (string2 <= 12200.00)
do while (.true.)
if(get) then
p=p+1
write(10,'(i3)') 'p=',p
write(*,'(i3)') 'p=',p
read(20,'(bn,a75)') line
write(10,'(a75)') line
write(*,'(a75)') line
sj=string3 + 2
do i=1,sj
read(20,'(bn,a75)') line
write(10,'(a75)') line
write(*,'(a75)') line
end do
else
read(20,fmt='(bn,a75)') line
write(*,*) 'push'
sj=string3 + 2
do i=1,sj
read(20,'(bn,a75)') line
end do
end if
end do
stop
end
我想要读取档案中第15~22的字元
23~23
67~69
写出个判断式来判断
符合资料的话就开个新档写过去
不过符合的话我必须连下面那些不需要判断的资料也一起写过去
行数为sj
并显示在萤幕上方便我阅读
然後加个计数器
感觉写出来的东西没啥问题
可是读出来的结果却是PUSH
不然就是读不出来
可否麻烦板上的大大们告诉我问题出在哪呢
还是个FORTRAN新手想破了脑实在看不出问题是出在哪里
哀
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.123.66.94
1F:→ charlesdc:你的get写法怪怪的我没看过可以这样用@@? 你检查一下get 07/31 15:48
2F:→ charlesdc:的值看看应该就明了了 07/31 15:48
3F:推 hiyiyi:应该将get後面的放到if里,然後get=.true. 07/31 20:32
4F:→ brucezmc:不好意思 还是不太了解各位所说的原因 可否说的详细一点 08/02 10:41
5F:→ brucezmc:感谢^^~ 08/02 10:41