大侠们,新手又来求助了!!!!本人迷迷糊糊写了几行代码。写到后面自己也有点思维混乱了。所以抛出问题,贴出代码希望获得帮助!
!!!!!!!!补充问题,还有一个问题自己完全无能为力了。如何可以从这么多文件中,按照年月日提取我想要的文件,然后再提取所需要的数据列进行计算呢???
已将n个txt文件名循环存入一个path.txt文件中。
!!!接下来是利用path.txt中的文件名循环打开这些文件(每一个文件都有多列),并且读出其中的某一列数据,再将这些提取出来的列数据组成一个新的数组写入新的文件用于计算使用。
代码行=================
[Fortran] 纯文本查看 复制代码 program test12
implicit none
integer,parameter :: irow = 100 !给一个文件可能的最大数量
integer,parameter :: iline = 60 !行数
real,dimension(iline,irow) :: a !定义一个二维数组用于存放提取的所有数据
character,dimension(irow) :: b !定义一个一维数组用于存放名字
logical :: exceed = .false.
character(len = 20) :: filename
integer :: i,j,k
character :: name
integer :: nvals = 0
integer :: status
integer :: num = 100
integer :: height
real :: windspeed1
!!!打开存放文件名的path.txt文件
open(unit=11,file='path.txt',status='old',action='read',IOSTAT=status)
if(status /= 0)then
!!!逐行读取文件名,并保存在数组b中
do
read(11,*,iostat=status) name
if(status /=0)EXIT
nvals = nvals +1
size:if(nvals<=irow)then
b(nvals) = name
else
exceed = .true.
end if size
end do
!!!读取数据
do i=1,nvals
!根据b(i)的文件名循环打开数据文件
open(num,file = 'b(i)',status='old',action='read',IOSTAT=status)
if(status /= 0 )EXIT
!将前三行说明文件读空
do j=1,3
read(unit=num,*)
end do
!读取所要的数据
do k=1,iline
read(2,*) a(k,i) !2是想要提取的数据列数
if(status/=0)EXIT
end do
if(i>nvals)exit
end do
!!!新建一个文件,将读出的数组写入其中保存用于计算
open(unit=12,file='windspeed.txt',status='new')
read(*,*)a
stop
end
!!!!!测试中遇到了一些问题无能为例,截图求助
最后我截图了代码,方便大侠们帮我看
|