回 帖 发 新 帖 刷新版面

主题:循环读取不同文件中多个文本文档中的不同行

program ex02
implicit none
integer i,j,k,m,n
integer jb(350),jbp(14,350),wind(350,2),windp(14,731,2),gd(350),gdp(14,731),lines,a
integer station(350),stationp(14,731)
integer hg(350),hgp(16,731)
real dd(350,2),ddp(14,731,2),t(350,2),tp(14,731,2)
character(60) filename(731),filename1(14)
open(11,file='e:/zuoye/100.txt')
read(11,*)(filename(i),i=1,728)
write(*,*)(filename(i),i=1,18)
close(11)
do m=1,728
   k=20+m
   lines=0
   open(k,file=filename(m))
   do while(.not.eof(k))
   read(k,*)
   lines=lines+1
   enddo
   close(k)
   open(k,file=filename(m))
   a=lines-2
   read(K,*)
   read(k,*)
   read(k,*)(station(i),(dd(i,j),j=1,2),hg(i),jb(i),gd(i),(t(i,j),j=1,2),(wind(i,j),j=1,2),i=1,a)
   do n=1,a
      if(station(n)==57957) then
         stationp(1,m)=station(n)
         ddp(1,m,1)=dd(n,1)
         ddp(1,m,2)=dd(n,2)
         hgp(1,m)=hg(n)
         gdp(1,m)=gd(n)
         tp(1,m,1)=t(n,1)
         tp(1,m,2)=t(n,2)
         windp(1,m,1)=wind(n,1)
         windp(1,m,2)=wind(n,2)
        
        
      elseif(station(n)==57972) then
         stationp(2,m)=station(n)
         ddp(2,m,1)=dd(n,1)
         ddp(2,m,2)=dd(n,2)
         hgp(2,m)=hg(n)
         gdp(2,m)=gd(n)
         tp(2,m,1)=t(n,1)
         tp(2,m,2)=t(n,2)
         windp(2,m,1)=wind(n,1)
         windp(2,m,2)=wind(n,2)

     elseif(station(n)==57993) then
         stationp(3,m)=station(n)
         ddp(3,m,1)=dd(n,1)
         ddp(3,m,2)=dd(n,2)
         hgp(3,m)=hg(n)
         gdp(3,m)=gd(n)
         tp(3,m,1)=t(n,1)
         tp(3,m,2)=t(n,2)
         windp(3,m,1)=wind(n,1)
         windp(3,m,2)=wind(n,2)

     elseif(station(n)==59023) then
         stationp(4,m)=station(n)
         ddp(4,m,1)=dd(n,1)
         ddp(4,m,2)=dd(n,2)
         hgp(4,m)=hg(n)
         gdp(4,m)=gd(n)
         tp(4,m,1)=t(n,1)
         tp(4,m,2)=t(n,2)
         windp(4,m,1)=wind(n,1)
         windp(4,m,2)=wind(n,2)
     elseif(station(n)==59211) then
         stationp(5,m)=station(n)
         ddp(5,m,1)=dd(n,1)
         ddp(5,m,2)=dd(n,2)
         hgp(5,m)=hg(n)
         gdp(5,m)=gd(n)
         tp(5,m,1)=t(n,1)
         tp(5,m,2)=t(n,2)
         windp(5,m,1)=wind(n,1)
         windp(5,m,2)=wind(n,2)
    elseif(station(n)==59265) then
         stationp(6,m)=station(n)
         ddp(6,m,1)=dd(n,1)
         ddp(6,m,2)=dd(n,2)
         hgp(6,m)=hg(n)
         gdp(6,m)=gd(n)
         tp(6,m,1)=t(n,1)
         tp(6,m,2)=t(n,2)
         windp(6,m,1)=wind(n,1)
         windp(6,m,2)=wind(n,2)
    elseif(station(n)==59293) then
         stationp(7,m)=station(n)
         ddp(7,m,1)=dd(n,1)
         ddp(7,m,2)=dd(n,2)
         hgp(7,m)=hg(n)
         gdp(7,m)=gd(n)
         tp(7,m,1)=t(n,1)
         tp(7,m,2)=t(n,2)
         windp(7,m,1)=wind(n,1)
         windp(7,m,2)=wind(n,2)
    elseif(station(n)==59316) then
         stationp(8,m)=station(n)
         ddp(8,m,1)=dd(n,1)
         ddp(8,m,2)=dd(n,2)
         hgp(8,m)=hg(n)
         gdp(8,m)=gd(n)
         tp(8,m,1)=t(n,1)
         tp(8,m,2)=t(n,2)
         windp(8,m,1)=wind(n,1)
         windp(8,m,2)=wind(n,2)
    elseif(station(n)==59431) then
         stationp(1,m)=station(n)
         ddp(9,m,1)=dd(n,1)
         ddp(9,m,2)=dd(n,2)
         hgp(9,m)=hg(n)
         gdp(9,m)=gd(n)
         tp(9,m,1)=t(n,1)
         tp(9,m,2)=t(n,2)
         windp(9,m,1)=wind(n,1)
         windp(9,m,2)=wind(n,2)
    elseif(station(n)==59644) then
         stationp(10,m)=station(n)
         ddp(10,m,1)=dd(n,1)
         ddp(10,m,2)=dd(n,2)
         hgp(10,m)=hg(n)
         gdp(10,m)=gd(n)
         tp(10,m,1)=t(n,1)
         tp(10,m,2)=t(n,2)
         windp(10,m,1)=wind(n,1)
         windp(10,m,2)=wind(n,2)
    elseif(station(n)==59663) then
         stationp(11,m)=station(n)
         ddp(11,m,1)=dd(n,1)
         ddp(11,m,2)=dd(n,2)
         hgp(11,m)=hg(n)
         gdp(11,m)=gd(n)
         tp(11,m,1)=t(n,1)
         tp(11,m,2)=t(n,2)
         windp(11,m,1)=wind(n,1)
         windp(11,m,2)=wind(n,2)
    elseif(station(n)==59758) then
         stationp(1,m)=station(n)
         ddp(12,m,1)=dd(n,1)
         ddp(12,m,2)=dd(n,2)
         hgp(12,m)=hg(n)
         gdp(12,m)=gd(n)
         tp(12,m,1)=t(n,1)
         tp(12,m,2)=t(n,2)
         windp(12,m,1)=wind(n,1)
         windp(12,m,2)=wind(n,2)
    elseif(station(n)==59948) then
         stationp(13,m)=station(n)
         ddp(13,m,1)=dd(n,1)
         ddp(13,m,2)=dd(n,2)
         hgp(13,m)=hg(n)
         gdp(13,m)=gd(n)
         tp(13,m,1)=t(n,1)
         tp(13,m,2)=t(n,2)
         windp(13,m,1)=wind(n,1)
         windp(13,m,2)=wind(n,2)
    elseif(station(n)==59981) then
         stationp(14,m)=station(n)
         ddp(14,m,1)=dd(n,1)
         ddp(14,m,2)=dd(n,2)
         hgp(14,m)=hg(n)
         gdp(14,m)=gd(n)
         tp(14,m,1)=t(n,1)
         tp(14,m,2)=t(n,2)
         windp(14,m,1)=wind(n,1)
         windp(14,m,2)=wind(n,2)
 
     end if
    end do
    close(k)
  end do
     
         
   open(12,file='e:/zuoye/pingjun/data.txt')
   m=1
   write(*,*) m 
   read(12,*)(filename1(i),i=1,14)
   write(*,*) (filename1(i),i=1,14)
   close(12)
   do i=1,14
     k=i+30
     open(k,file=filename(i))         
     write(k,100) i,(stationp(i,m),(ddp(i,m,j),j=1,2),hgp(i,m),gdp(i,m),(tp(i,m,j),j=1,2),(windp(i,m,j),j=1,2),m=1,728)
    close(K)
    enddo
100 format(2x,i2,2x,i5,2x,f6.2,2x,f5.2,2x,i3,2x,2x,i6,2x,f6.1,2x,f6.1,2x,i4,2x,i4)
     
   

 end 
这是一个读取不同文件夹下不同文本文档中开头一样的一行数据的 如开头都为57957的一行,现在循环不了 不知道问题出哪儿了 请教各位。文件中plot下有11个文件夹,分别是100-1000hpa下的文档 每个文件夹中有728个文本,想要做的是 把各hpa下的文本中开头为
57957
57972
57993
59023
59211
59265
59293
59316
59431
59644
59663
59758
59948
59981

这些编号的行数挑出来存在一个文本中。

回复列表 (共1个回复)

沙发

学习了,谢谢楼主分享了。






















SIGNATURE:--------------------------------------------------
One's real value first lies in to degree and he set himself.
[url=http://www.winfrees.com/nike-free-run-3-men-c-3.html]nike free run 3[/url]    ,     [url=http://www.winfrees.com/nike-lunareclipse-2-men-c-11.html]nike lunareclipse 2[/url]    ,    [url=http://www.winfrees.com/nike-free-run-2-men-c-6.html]nike free run 2[/url]

我来回复

您尚未登录,请登录后再回复。点此登录或注册