Fortran Coder

查看: 13871|回复: 10
打印 上一主题 下一主题

[文件读写] 求助一个文件读写的问题

[复制链接]

17

帖子

3

主题

0

精华

入门

F 币
70 元
贡献
43 点
跳转到指定楼层
楼主
发表于 2015-8-17 20:27:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如图所示的数据文件,我想用fortran把X Y Z对应下面的数据存入到一个数组中和写入到一个文件中,要求只存X Y Z的数据(坐标),其他的不要,请问该怎么操作?多谢指导

gp_pos.txt

3.43 KB, 下载次数: 1

原数据文件

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

712

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
607 元
贡献
311 点

新人勋章爱心勋章水王勋章元老勋章热心勋章

沙发
发表于 2015-8-17 20:35:56 | 只看该作者
[Fortran] 纯文本查看 复制代码
Program www_fcode_cn
  Implicit None
  Integer :: i , ierr
  real :: x , y , z
  character(len=32) :: c
  Open( 12 , File = "gp_pos.txt" )
  Open( 13 , File = "gp_pos_new.txt" )
  Do i = 1 , 3
    read( 12 , * ) c
  End Do
  Do
    read( 12 , * , iostat = ierr ) i , c , x , y , c
    if ( ierr /= 0 ) exit
    i = len_trim( c )
    read( c(1:i-1) , * ) z
    write( 13 , * ) x , y , z
  End Do
  Close( 12 )
  Close( 13 )
End Program www_fcode_cn

17

帖子

3

主题

0

精华

入门

F 币
70 元
贡献
43 点
板凳
 楼主| 发表于 2015-8-17 21:23:43 | 只看该作者
非常感谢
回复

使用道具 举报

17

帖子

3

主题

0

精华

入门

F 币
70 元
贡献
43 点
地板
 楼主| 发表于 2015-8-18 20:44:49 | 只看该作者
群主,请问怎样把读出来的数据赋值给一个数组啊

17

帖子

3

主题

0

精华

入门

F 币
70 元
贡献
43 点
5#
 楼主| 发表于 2015-8-18 20:45:09 | 只看该作者
楚香饭 发表于 2015-8-17 20:35
[mw_shl_code=fortran,true]Program www_fcode_cn
  Implicit None
  Integer :: i , ierr

群主,请问怎样把读出来的数据赋值给一个数组啊

100

帖子

0

主题

0

精华

专家

F 币
550 元
贡献
291 点

规矩勋章元老勋章

QQ
6#
发表于 2015-8-18 21:24:44 | 只看该作者
[Fortran] 纯文本查看 复制代码
Program www_fcode_cn
  Implicit None
  Integer :: i , k , ierr , N , GetFileN
  real , allocatable :: x(:) , y(:) , z(:)
  character(len=32) :: c
  Open( 12 , File = "gp_pos.txt" )
  Open( 13 , File = "gp_pos_new.txt" )
  N = GetFileN( 12 ) - 3  
  allocate( x(N) , y(N) , z(N) )
  Do i = 1 , 3
    read( 12 , * ) c
  End Do
  Do i = 1 , N
    read( 12 , * , iostat = ierr ) c , c , x(i) , y(i) , c
    if ( ierr /= 0 ) exit
    k = len_trim( c )
    read( c(1:k-1) , * ) z(i)
    write( 13 , * ) x(i) , y(i) , z(i)
  End Do
  Close( 12 )
  Close( 13 )
End Program www_fcode_cn

Integer Function GetFileN( iFileUnit )
!// 此函数应在打开文件后立即调用。调用后读取位置返回文件起始位置
  Implicit None
  Integer , Intent( IN ) :: iFileUnit
  character( Len = 1 ) :: cDummy
  integer :: ierr
  GetFileN = 0
  Rewind( iFileUnit )
  Do
    Read( iFileUnit , * , ioStat = ierr ) cDummy
    If( ierr /= 0 ) Exit
    GetFileN = GetFileN + 1
  End Do
  Rewind( iFileUnit )
End Function GetFileN 

17

帖子

3

主题

0

精华

入门

F 币
70 元
贡献
43 点
7#
 楼主| 发表于 2015-8-18 21:55:30 | 只看该作者
百事可乐 发表于 2015-8-18 21:24
[mw_shl_code=fortran,true]Program www_fcode_cn
  Implicit None
  Integer :: i , k , ierr , N , GetFi ...

    Open(14,File="xyzn.txt")
    Open(13,File="gp_pos_new.txt")
    call GetFileN( 13 )
    write(14,'(1E11.4E2,2E12.4E3)')xyzn
    End Program Data_Processing

运行完了,xyzn.txt还是全部为0,不知道咋回事,下午弄的也全部是0,用你这个方法还都是0

954

帖子

0

主题

0

精华

大师

F 币
184 元
贡献
75 点

规矩勋章元老勋章新人勋章水王勋章热心勋章

QQ
8#
发表于 2015-8-18 22:51:52 来自移动端 | 只看该作者
你乱改代码当然结果不正确

17

帖子

3

主题

0

精华

入门

F 币
70 元
贡献
43 点
9#
 楼主| 发表于 2015-8-19 08:26:48 | 只看该作者
vvt 发表于 2015-8-18 22:51
你乱改代码当然结果不正确

能明示么

17

帖子

3

主题

0

精华

入门

F 币
70 元
贡献
43 点
10#
 楼主| 发表于 2015-8-19 08:28:46 | 只看该作者

我再好好看看
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-4-29 23:46

Powered by Tencent X3.4

© 2013-2024 Tencent

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