Fortran Coder

查看: 32510|回复: 11
打印 上一主题 下一主题

[文件读写] 读取csv文件,并进行计算

[复制链接]

25

帖子

8

主题

0

精华

熟手

F 币
164 元
贡献
104 点
跳转到指定楼层
楼主
发表于 2017-3-1 21:47:04 | 显示全部楼层 |只看大图 回帖奖励 |倒序浏览 |阅读模式
想要读取excel另存为的csv文件sheet1中数据,如图:

数据共48行,

我想要写一个程序读到这一列数据,并将这一列数据分别乘以1和2,放到第二列和第三列中,最后输出csv,以便在excel中查看。
程序faa.f如下:

运行faa.exe,出现错误:


请问是什么问题?

QQ图片20170301214104.png (7.92 KB, 下载次数: 451)

数据

数据

QQ截图20170301214416.png (18.59 KB, 下载次数: 433)

程序faa.f

程序faa.f

QQ截图20170301214621.png (19.65 KB, 下载次数: 403)

错误

错误
分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

25

帖子

8

主题

0

精华

熟手

F 币
164 元
贡献
104 点
沙发
 楼主| 发表于 2017-3-1 21:48:03 | 显示全部楼层
完全新手啊,听说可以艾特大神@fcode,拜托拜托

25

帖子

8

主题

0

精华

熟手

F 币
164 元
贡献
104 点
板凳
 楼主| 发表于 2017-3-2 10:40:05 | 显示全部楼层
fcode 发表于 2017-3-1 22:17
你这是在linux上跑程序,但是你却写了一个windows上的路径。

谢谢大神,但是我更改完地址之后,如:
[Fortran] 纯文本查看 复制代码
program main
      implicit none
      integer :: i=48
      real ::f(48)
      real ::ef10=1.09,ef25=0.31
      real a(48),b(48)
      open(12 , file ="/home/iga_qtong/fortran_xcao/fa.csv")
      read(12,*)
        do i=1,48
        read(12,*) f(i)
        end do
        a(i)=f(i)*ef10
        b(i)=f(i)*ef25
        write(12,*) f(i),',',a(i),',',b(i)
      close(12)
      end program main

还是出现了以下问题,forrtl: severe (24): end-of-file during read, unit 12, file /home/iga_qtong/fortran_xcao/fa.csv
Image              PC                Routine            Line        Source            

faa.exe            00000000004052C6  Unknown               Unknown  Unknown
faa.exe            0000000000418923  Unknown               Unknown  Unknown
faa.exe            0000000000402D88  Unknown               Unknown  Unknown
faa.exe            0000000000402C7E  Unknown               Unknown  Unknown
libc.so.6          0000003358A1ED1D  Unknown               Unknown  Unknown
faa.exe            0000000000402B89  Unknown               Unknown  Unknown

并没有输出我想要的csv格式,我查看之后发现有人输出csv,使用了
real ::f_openfile    f_openfile=shellexecute(0,"open","/home/iga_qtong/fortran_xcao/fa.csv",null,null,12)
但是把这句加入会出现以下错误:
faa.f(18): error #5120: Unterminated character constant
      f_openfile=shellexecute(0,"open","/home/iga_qtong/fortran_xcao/fa.csv",null,null,12)
---------------------------------------^
faa.f(18): error #5082: Syntax error, found END-OF-STATEMENT when expecting one of: ) :: , :
      f_openfile=shellexecute(0,"open","/home/iga_qtong/fortran_xcao/fa.csv",null,null,12)
------------------------------------------------------------------------------------------^
faa.f(18): error #6404: This name does not have a type, and must have an explicit type.   [SHELLEXECUTE]
      f_openfile=shellexecute(0,"open","/home/iga_qtong/fortran_xcao/fa.csv",null,null,12)
-----------------^
compilation aborted for faa.f (code 1)
请问,想要输出到底是什么格式呢?

25

帖子

8

主题

0

精华

熟手

F 币
164 元
贡献
104 点
地板
 楼主| 发表于 2017-3-2 10:45:34 | 显示全部楼层
楚香饭 发表于 2017-3-2 10:44
请点击 回形针 图标的 按钮上传图片

好的,谢谢谢谢,一直上传不上去,谢谢提示。

25

帖子

8

主题

0

精华

熟手

F 币
164 元
贡献
104 点
5#
 楼主| 发表于 2017-3-2 16:11:47 | 显示全部楼层

非常感谢,还有一些问题,不知可否给予解答。
以下是数据:

想要通过计算,把a-k列的值经过计算,放到l-t中,
以下是我写的程序:

但是在ifort farm_fm.f -o farm_fm.exe时出现以下错误:

请问是什么问题?

25

帖子

8

主题

0

精华

熟手

F 币
164 元
贡献
104 点
6#
 楼主| 发表于 2017-3-9 19:08:47 | 显示全部楼层
楚香饭 发表于 2017-3-2 10:56
试试这样:

[mw_shl_code=fortran,true]program main

请问,read(12,*,iostat=k) f    k的值到底是什么意义呢?
         if ( k/= 0 ) exit
是什么意思?
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-3 16:28

Powered by Tencent X3.4

© 2013-2024 Tencent

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