Fortran Coder

查看: 11018|回复: 9
打印 上一主题 下一主题

[文件读写] 新人求助,想去除一个文件中负数

[复制链接]

10

帖子

2

主题

0

精华

入门

F 币
60 元
贡献
35 点
跳转到指定楼层
楼主
发表于 2016-10-11 15:48:25 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
应该很简单的问题。搞了一整天才搞定怎么读取、写入。文件如果水深为负数则整行去除,不知到怎么改
怎么改if a(:,i)能表示在TXT中得位置呢
分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

10

帖子

2

主题

0

精华

入门

F 币
60 元
贡献
35 点
沙发
 楼主| 发表于 2016-10-11 16:42:37 | 显示全部楼层
我发来。处理一半的程序和文件

tx1.txt

65.93 KB, 下载次数: 5

10

帖子

2

主题

0

精华

入门

F 币
60 元
贡献
35 点
板凳
 楼主| 发表于 2016-10-11 16:43:01 | 显示全部楼层
[Fortran] 纯文本查看 复制代码
Program main
  Use DFile_Mod
  Implicit None
  Real , allocatable :: a(:,:)
  Character(len=512) :: cStr
  Real    :: r  
  integer :: FILE_IN , i , nRow , nCol
  Open( NewUnit = FILE_IN , File = "text.asc" )
  nRow = GetFileN( FILE_IN ) - 2 !//获得文件行数 
  Read( FILE_IN , * ) !//跳过第一行
  Read( FILE_IN , '(a512)' ) cStr!//读取第三行
  nCol = GetDataN( cStr ) - 8 !//获得第三行有多少列
  write( *, '("Row:",g0," Col: ",g0)' ) nRow , nCol
  Allocate( a( nCol , nRow ) )
  Backspace( FILE_IN ) !//退回到第三行
   open( 11 , file ="tx1.txt")
    write( 11 , * )"  depth          temp          sal           turb  "
  Do i = 1 , nRow
    Read( FILE_IN , * ) r ,r, r, r, a( : , i )
    write( 11 , * ) a(:,i)
  End Do
  Deallocate( a )
  Close( FILE_IN )
End Program main

10

帖子

2

主题

0

精华

入门

F 币
60 元
贡献
35 点
地板
 楼主| 发表于 2016-10-11 16:43:26 | 显示全部楼层
上面有模版,不过没粘贴

10

帖子

2

主题

0

精华

入门

F 币
60 元
贡献
35 点
5#
 楼主| 发表于 2016-10-11 16:44:06 | 显示全部楼层
想把所有水深是负的行都去掉,因为是误差值

10

帖子

2

主题

0

精华

入门

F 币
60 元
贡献
35 点
6#
 楼主| 发表于 2016-10-11 17:22:24 | 显示全部楼层
原始文档就是这个。网站不让传ASC,我复制到TXT了。没啥区别

数据.txt

85.87 KB, 下载次数: 5

评分

参与人数 1F 币 +1 收起 理由
fcode + 1 可以压缩成zip上传

查看全部评分

10

帖子

2

主题

0

精华

入门

F 币
60 元
贡献
35 点
7#
 楼主| 发表于 2016-10-12 08:41:11 | 显示全部楼层
厉害了,我得哥。有效果诶。。 不过程序没看明白,我好好研究一下。昨天九点多走的时候没发现有回复啊,奇怪。Ths!

评分

参与人数 1F 币 +1 收起 理由
fcode + 1 看不懂的可以再提问

查看全部评分

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

本版积分规则

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

GMT+8, 2024-5-3 22:26

Powered by Tencent X3.4

© 2013-2024 Tencent

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