爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 3452|回复: 4

[求助] 批量输出固定行数的的txt

[复制链接]

新浪微博达人勋

发表于 2017-4-20 16:24:20 | 显示全部楼层 |阅读模式

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

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

x
我先在有一列数据需要每隔5000行输出一个txt为1一个月份,资料从2006年一月份到2100年12月31日,我需要输出的结果txt的名字为2006.1.txt、2006.2.txt到2100.12.txt,怎么批处理命令可以实现喃,我只做过一年输出可以 ,但是要输出95年每一年的月份.txt.就不知道该怎么办了,求助大神。这是以前处理一年输出的批处理程序,需要输出的名称也读入在一个txt,但是现在有95年的,每一年有12各月份,不可能手动输入txt的名称读入,再批量输出吧,读入的时候可以做什么处理喃或者输出的时候能使得程序自动识别,比较急希望与老师们交流
program main
implicit none
integer,parameter::allrows=789360,danzhan_rows=5060,colums=5,start_year=1961,end_year=2015,sta_num=156
integer,dimension(allrows,colums):: datas
character(len=5),dimension(sta_num):: state_name
integer i,j
open(1,file='statename.txt')
do i=1,sta_num
    read(1,*) state_name(i)
enddo
close(1)
open(2,file='out4.txt')
do i=1,allrows
   read(2,*) datas(i,1:colums)      !把state.txt里面所有数据读入datas这个数组里面
enddo
close(2)
do i=1,sta_num
    open(30,file='F:/work/scrain/6-8/R95p/2/\allzhandianshuju\'//state_name(i)//'.txt')
    do j=danzhan_rows*(i-1)+1,danzhan_rows*i
        write(30,*) datas(j,1:colums)
        if(j==danzhan_rows*i) then
            exit  
        endif
    enddo
    close(30)         
enddo   
end
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-4-21 16:48:12 | 显示全部楼层
文字能明白,但代码似乎还有站号,不止一列,没太明白,单说文字叙述性的内容。只要按年份和按月份二重循环就行了

DO I = 2006,2100  !Year
  WRITE(CYear,'(I4)') I
  DO J = 1,12   !Month
    WRITE(CMon,'(I2.2)') J
    OPEN(J,FIEL = '路径'//CYear//'_'//CMon//'.txt')
    DO K = 1,5000  !Row
        READ( , ) 从文件中读取一行
        WRITE(J,*) 自己设定格式读进来
    END DO
        CLOSE(J)
  END DO
END DO

这里主要用到一个技巧,把循环变量变成字符型拼接进路径,生成自动的文件名,详细参考:
http://bbs.06climate.com/forum.php?mod=viewthread&tid=24905
   

评分

参与人数 1金钱 +6 收起 理由
lqouc + 6

查看全部评分

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

新浪微博达人勋

发表于 2017-4-21 17:01:56 | 显示全部楼层
{:5_196:}{:5_196:}{:5_196:}{:5_196:}{:5_196:}{:5_196:}
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2017-4-21 17:43:27 | 显示全部楼层
金色牛神 发表于 2017-4-21 16:48
文字能明白,但代码似乎还有站号,不止一列,没太明白,单说文字叙述性的内容。只要按年份和按月份二重循环 ...

嗯嗯,站号是以前的fortran,程序,
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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