24小时热门版块排行榜    

查看: 1331  |  回复: 11
当前主题已经存档。

shadow6wy

铜虫 (初入文坛)

[交流] 【求助】求fortran达人解答fortran读取数据问题

我想用fortran实现我以下的要求
比如说有数据文件data.txt
文件如这样格式
1.1 1.2  1.3  1.4
2.1 2.2  2.3  2.4
3.1 3.2  3.3  3.4
(数据格式整齐)

我想依次读取1.1  1.2  1.3  1.4  2.1  2.2  2.3  2.4  3.1  3.2  3.3  3.4
但每次只要读一个,因为在读取一个数据后还有一个巨大的循环体进行运算
因此简单的说可以表达为
读取1.1赋予a——运行循环体——读取1.2再赋予a——运行循环体……直到所有数据都读完。

另外,我也不希望用数组的方式一次性把数据都读出来,因为这里是一行4个数据,我的运算中可能有1000个或者一万个数据,这样占用内存可能引起溢出。因此想求一个好一点的方法!
谢谢

急求!!!若有人肯帮忙写出程序,愿再出20金币悬赏

[ Last edited by jjdg on 2010-1-21 at 16:27 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

shadow6wy

铜虫 (初入文坛)


jjdg(金币+1,VIP+0):鼓励新虫交流! 1-21 16:24
顶起来啊,怎么连个回复的都没有啊?如果嫌少 我再加金币啊
2楼2010-01-21 13:42:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nono2009

超级版主 (文学泰斗)

No gains, no pains.

优秀区长优秀区长优秀区长优秀区长优秀版主

★ ★ ★ ★ ★ ★
余泽成(金币+1,VIP+0):谢谢参与应助! 1-21 14:45
shadow6wy(金币+5,VIP+0):我尝试一下 1-22 09:20
一次读一行4个数据吧,循环运算完了以后,再读下面4个数据......
3楼2010-01-21 14:25:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jjdg

版主 (知名作家)

优秀版主

★ ★ ★ ★ ★
shadow6wy(金币+5,VIP+0):理解了 1-22 09:19
即用即读吧!
努力学习!以正当途径!获得需要的知识!
4楼2010-01-21 16:28:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

shadow6wy

铜虫 (初入文坛)

引用回帖:
Originally posted by nono2009 at 2010-1-21 14:25:
一次读一行4个数据吧,循环运算完了以后,再读下面4个数据......

这里只是个例子,我的数据估计有1000个或者10000个,还有许多个文件都要读,所以不能都读到内存里吧,在read一次之后就没有办法再读上一行的文件了吗?
5楼2010-01-21 17:05:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

shadow6wy

铜虫 (初入文坛)

引用回帖:
Originally posted by jjdg at 2010-1-21 16:28:
即用即读吧!

版主是什么意思呢?
6楼2010-01-21 17:06:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tjyl

金虫 (正式写手)

1W个双精度的才占多少空间啊,你自己算算吧1W*8字节。你自己用动态数组,自己分配空间就是了。
读数据用real(id,*)  A,B,C,D 用默认格式就行了。不用去指定格式,一次是读一行。
引用回帖:
Originally posted by shadow6wy at 2010-1-20 17:31:
我想用fortran实现我以下的要求
比如说有数据文件data.txt
文件如这样格式
1.1 1.2  1.3  1.4
2.1 2.2  2.3  2.4
3.1 3.2  3.3  3.4
(数据格式整齐)

我想依次读取1.1  1.2  1.3  1.4  2.1  2.2  2.3  2. ...

7楼2010-01-21 18:46:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tjyl

金虫 (正式写手)

★ ★
余泽成(金币+2,VIP+0):谢谢专家,辛苦了! 1-21 18:59
自己看一下rewind的用法吧
引用回帖:
Originally posted by shadow6wy at 2010-1-21 17:05:

这里只是个例子,我的数据估计有1000个或者10000个,还有许多个文件都要读,所以不能都读到内存里吧,在read一次之后就没有办法再读上一行的文件了吗?

8楼2010-01-21 18:48:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

liyi3344520

木虫 (正式写手)

★ ★
jjdg(金币+2,VIP+0):辛苦了 1-22 00:32
POSITION=’ASIS’ or ‘REWIND’ or ‘APPEND’   设置文件打开时候的读写位置:
POSITION=’ASIS’   表示文件打开时的读取的位置不特别指定,通常就是在文件的开头。是默认值。
POSITION=’REWIND’      表示文件打开时的读取位置移到文件的开头。
POSITION=’APPEND’     表示文件打开时的读取位置移到文件的结尾。
9楼2010-01-21 19:08:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hakekill

木虫 (小有名气)

★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
余泽成(金币+3,VIP+0):谢谢应助,辛苦了! 1-22 11:33
我写了一个,不过对数据文件的格式要求比较严,不过数据格式可以根据具体的情况来做修改,贴出来请大家指正一下:

program main
integer :: cur_num, num_eachline
open(unit = 10, file = "test.dat", action = "read"
num_eachline = 4
cur_num = 1
do
  if ( cur_num == num_eachline ) then
    read(unit = 10, fmt = "(f3.1)", advance = "yes", iostat = ios ) a
  else
    read(unit = 10, fmt = "(f3.1, 1x)", advance = "no", iostat = ios ) a
  end if
  if (ios < 0 ) then
    close( 10 )
    exit
  else
    print *, a
    if ( cur_num < num_eachline ) then
      cur_num = cur_num + 1
    else
      cur_num = 1
    end if
  end if
end do
end program

--test.dat----
1.1 1.2 1.3 1.4
2.1 2.2 2.3 2.4
3.1 3.2 3.3 3.4
4.1 4.2 4.3 4.4

result:
1.1
1.2
1.3
1.4
2.1
2.2
2.3
2.4
3.1
3.2
3.3
3.4
4.1
4.2
4.3
4.4
10楼2010-01-22 10:36:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 shadow6wy 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 国社科又开始会评了,不知道这次命运如何 +8 雨打竹帘 2026-08-30 12/600 2026-09-03 06:24 by sincosx
[公派出国] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 ero8OE6tv9cu 2026-09-02 4/200 2026-09-03 03:14 by rM1TE0WVDIIY
[基金申请] 为什么资助数各大高校都创新高,自己申请怎么就这么难 +14 Kittylucky 2026-08-27 15/750 2026-09-02 19:35 by liumei0601
[基金申请] 科研人应该花精力去思考如何解决问题,而不是去凝练问题 +7 瞬息宇宙 2026-09-01 14/700 2026-09-02 17:33 by ma0526
[基金申请] 要骂人了,新模版改版就是要淡化问题凝练这种虚的东西,结果有个评委还在说凝练得不够 +9 瞬息宇宙 2026-08-31 17/850 2026-09-02 14:04 by anjeeshine
[基金申请] 基金系统什么内容也没有 30+4 winsaint 2026-08-27 10/500 2026-09-02 11:35 by 大不刘6
[基金申请] 学科评审组评审是指会评吗? +5 瞬息宇宙 2026-08-31 5/250 2026-09-02 10:13 by 雨冰共舞
[基金申请] 面上函评意见出来了,像什么等级? 20+4 Tsingking1 2026-08-27 17/850 2026-09-01 19:51 by 超级无敌华子
[论文投稿] 小白求助 投论文要求的highlights应该如何写 5+3 l1963982152 2026-08-29 4/200 2026-09-01 09:04 by 北京莱茵编辑
[基金申请] 基金未中,这种答复是模板吗? +6 zhaosm1982 2026-08-27 7/350 2026-08-31 21:18 by qdxxmc
[基金申请] 面上意见出来了 +12 黄鸟于飞Chao 2026-08-29 23/1150 2026-08-31 18:57 by 黄鸟于飞Chao
[基金申请] 能否申诉? +7 echo8914667 2026-08-30 8/400 2026-08-31 17:00 by yihongxu
[基金申请] 中青基了要发朋友圈吗? +7 349506619 2026-08-28 7/350 2026-08-31 13:39 by 冼亮淀粉酶
[基金申请] 29号明天会评吗 +4 笨笨唐 2026-08-28 4/200 2026-08-31 09:30 by huixian257
[基金申请] 为什么到现在没收到通知? +5 tannykie 2026-08-29 5/250 2026-08-30 21:05 by purplejack
[基金申请] 有没有仍没收到信息的 +7 德尚中行 2026-08-27 8/400 2026-08-30 20:52 by purplejack
[考博] 找导师 +6 yuanjiabao 2026-08-29 7/350 2026-08-30 14:40 by 生科新手
[基金申请] 我就是申请一个面上项目而已,这评审意见是按照杰青的条件评的吧? +6 gouxfjh 2026-08-28 11/550 2026-08-30 07:57 by gouxfjh
[基金申请] 国自然评审意见 +13 wangmingqi 2026-08-28 19/950 2026-08-29 10:22 by Poppy1104
[基金申请] 2026年叶企孙基金 +4 bud_bud 2026-08-27 7/350 2026-08-29 07:23 by foolishmani
信息提示
请填处理意见