爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 8272|回复: 15

[源代码] fortran批处理

[复制链接]

新浪微博达人勋

发表于 2016-3-31 09:37:58 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 自由行 于 2016-3-31 10:59 编辑

这是一个txt文件,我需要处理几十个txt文件 需要用到批处理,原先有用过批处理,是把几十个txt通过批处理输出到一个txt中,现在是需要通过批处理输入多少个txt就要输出那么多个txt,所以不知道该怎么书写输出的格式,不知道有没有大神解决过这类问题可以请教一下喃,很急,谢谢了。想问问如果输出语句要添加在哪里才能实现几十个txt同时输出喃。
!Function:整理气候数据
!Author:XYLS
!Date:2015.09.16
program main
implicit none
integer,parameter::years=64,days=366  !定义两个符号常量就不用解释了撒
character(len=5) station    !字符型变量存站号
character(len=4) year       !字符型变量存年份
integer,dimension(years,days)::raw_data     !存原始数据
integer,dimension(years*days,5)::result_data    !存最后输出数据
integer startyear   !起始年份变量
integer i,j,k
character*30 filename(156)

open(7,file='E:\sc\chu\console2\filenames.txt')
do j=1,156
   read(7,*)filename(j)
enddo
do k=1,156
open(1,file='E:\sc\chu\console2\'//filename(k)) !批处理开始
!open(1,file="E:\sc\chu\console1\chu56038.txt")
read(1,*) station,year      !读取第一行的站号和年份
do i=1,years
    read(1,*) (raw_data(i,j),j=1,days) !循环读取原始数据。原理是:用这种隐式循环读取每年的13行数据,每年的13行数据读完之后,就能够转换成一维的数组,数组大小是366,
    if(i==years) then                   !最后raw_data这个二维数组,就是64行*366列的二维数组。
        exit
    else
        read(1,*)          !由于每年开头都有一个站号和年份,除了第一年的第一行在上面读取之后,后面的就不用再读取了,当读到最后一年的时候,就直接退出循环。
    endif
enddo
close(1)
print*,raw_data(63,365),raw_data(64,365)   !作为验证输出,看程序时候能够正确读取数据
print*,station,year
open(2,file="E:\sc\chu\console2\out.txt")    !新建一个文档,用来存储最后的数据
startyear=1951
do i=1,years
    do j=1,days
        select case(j)  !由于要将数据按每天每行来存储,因此用select case语句比较方便,计算每个月的天数,然后依次将数据输出。
        case(1:31)!1月
            write(2,"(A5,4I7)") station,startyear,1,j,raw_data(i,j)
        case(32:60)!2月

1.txt

1.81 MB, 下载次数: 19, 下载积分: 金钱 -5

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-3-31 09:50:22 | 显示全部楼层
和你以前用过的一样!你以前批量的仅是读取文件,现在批量的是读取、写入文件,原理都一样。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-3-31 11:51:53 | 显示全部楼层
棒棒棒!存一个
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-4-3 12:23:39 | 显示全部楼层
看着,先从filenames.txt读取文件名,再读取数据,每个文件名要事先存到filenames.txt,略麻烦赶脚
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-4-5 09:09:12 | 显示全部楼层
smart_abell 发表于 2016-4-3 12:23
看着,先从filenames.txt读取文件名,再读取数据,每个文件名要事先存到filenames.txt,略麻烦赶脚

谢谢您的解答
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-4-5 11:01:56 | 显示全部楼层
这是不是读取自动气象站数据的?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-4-5 11:10:18 | 显示全部楼层
棒棒棒!存一个
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-6-6 19:12:53 | 显示全部楼层
四叶草 发表于 2016-3-31 09:50
和你以前用过的一样!你以前批量的仅是读取文件,现在批量的是读取、写入文件,原理都一样。

棒棒棒!存一个
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-6-6 19:14:56 | 显示全部楼层
四叶草 发表于 2016-3-31 09:50
和你以前用过的一样!你以前批量的仅是读取文件,现在批量的是读取、写入文件,原理都一样。

棒棒棒!存一个
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-8-9 09:34:55 | 显示全部楼层
刚好碰上批处理的程序了
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表