- 积分
- 677
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2013-5-21
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
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
|