Fortran Coder

标题: Fortran读取含有汉字的CSV文件,并根据时间筛选数据 [打印本页]

作者: 山水    时间: 2017-9-27 15:17
标题: Fortran读取含有汉字的CSV文件,并根据时间筛选数据
Fortran小白,求助:我的数据是CSV文件,内容如图所示,我想要用Fortran读取数据并根据时间进行筛选出我想要的月份,写入新的文件中,请问有大神可以指导一下么

1506496188(1).jpg (32 KB, 下载次数: 414)

1506496188(1).jpg

作者: fcode    时间: 2017-9-28 08:04
是否含有汉字,并不影响本问题。
以筛选 2017 年 3 月为例:
[Fortran] 纯文本查看 复制代码
Program Main
  Implicit None
  Character(len=1024) :: c
  integer :: k
  Open(12,File="文件名.csv")
  Open(13,File="输出文件名.csv")
  Do
    Read(12,'(a1024)',iostat=k) c
    if( k /= 0 ) exit
    if( index( c , '2017/3' ) > 0 ) write(13,'(a)') trim(c)
  End Do
  Close(12)
End Program Main



作者: 山水    时间: 2017-10-5 12:34
fcode 发表于 2017-9-28 08:04
是否含有汉字,并不影响本问题。
以筛选 2017 年 3 月为例:
[mw_shl_code=fortran,true]Program Main

万分感谢,万分感谢  但是我试了一下,运行出来的文件是空的,会不会因为我的数据太大了(600多兆),我想挑选的是有比如说2014年12月,2015年1-5月,12月2016年1-5月,12月,2017年1-5月,要怎么弄呢,希望不要嫌弃我这个小白
作者: fcode    时间: 2017-10-6 10:00
并不是因为文件太大。

可能的原因是:
1.你的文件路径有问题。
2.你的年份设置有问题。
3.其他
作者: 山水    时间: 2017-10-6 12:06
本帖最后由 山水 于 2017-10-6 17:06 编辑
fcode 发表于 2017-10-6 10:00
并不是因为文件太大。

可能的原因是:

文件路径和年份设置都是对的,我用其中的一部分数据运行,有些可以出来结果,有些就不行,所以才怀疑是不是文件太大了,还是字符串定义的小了程序是这样的
还有就是想让帮忙看一下,怎样同时满足两个条件进行筛选,我试了一下,只能根据第一个要求筛选,第二个不管用,程序如下:

@%(SZ_6R_BU{FZ$UAJS`I~F.png (12.59 KB, 下载次数: 388)

@%(SZ_6R_BU{FZ$UAJS`I~F.png

1]}M$OX%L4E(_X4V0%FS$CN.png (15.56 KB, 下载次数: 373)

1]}M$OX%L4E(_X4V0%FS$CN.png

作者: fcode    时间: 2017-10-8 11:18
我这里没有你的数据,我自己编纂了几行数据来测试,是OK的。

数据量大,本身并不是问题。但数据量大,可能增加数据文件里有错误的几率。建议你多输出一些内容,比如每次循环输出一个计数,观察第几个计数时停止了?到对应的数据文件的行去找原因。
作者: 山水    时间: 2017-10-8 15:34
fcode 发表于 2017-10-8 11:18
我这里没有你的数据,我自己编纂了几行数据来测试,是OK的。

数据量大,本身并不是问题。但数据量大,可能 ...

好的好的,真是非常感谢




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2