Fortran Coder

查看: 8317|回复: 3
打印 上一主题 下一主题

[文件读写] 逐个数据的读取

[复制链接]

35

帖子

11

主题

0

精华

熟手

F 币
241 元
贡献
140 点
跳转到指定楼层
楼主
发表于 2021-9-14 15:38:15 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
想将文件中的数据,从左到右,从上到下的顺序,读入成一维数组,但文件中每行的数据个数有变化(如图)
之前的想法是每行每行读取存到m*n的数组(m,n文件中每行每列数据个数),然后再改为一维数组,但是文件里面每行数据有变化就不适用了 。
[Fortran] 纯文本查看 复制代码
    ....
    do ....
        read(filename, "(a256)") cline
        read(cline, *) array(i: i+n)
    enddo

有什么好的方法能单个单个地将数据读入吗?直接给一维数组赋值。

捕获.PNG (28.27 KB, 下载次数: 232)

捕获.PNG

owner - 副本.txt

276 Bytes, 下载次数: 2

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

35

帖子

11

主题

0

精华

熟手

F 币
241 元
贡献
140 点
沙发
 楼主| 发表于 2021-9-14 17:29:32 | 只看该作者
我这个文件里数据除了最后一行,其他都是10个数据,最后一行数据个数由文件总数据量决定(总数据量-前面行数*10个),我是这么读的
[Fortran] 纯文本查看 复制代码
    ....
    mod_n=mod(nowner,10)  !// 10 each row, mod_n: remaining number of last row
    j=1                   !//j: index of ARRAY owner, assigning 10 values each time
    do i=1, nowner/10
        read(FILENAME, "(a256)") cline
        read(cline, *) owners(j: j+9)
        j=1+10*i
    enddo
    read(FILENAME, "(a256)") cline
    read(cline, *) owners(nowner+1-mod_n: nowner)
    .....

先读前面的每一行,10个10个的读入一维数组,最后把最后一行数据读入数组。

求教各位大佬,如果每一行的数据个数都是变化的,有什么合理的方式进行读取吗?

101

帖子

0

主题

0

精华

大师

F 币
670 元
贡献
299 点

规矩勋章元老勋章新人勋章

板凳
发表于 2021-9-14 21:58:26 | 只看该作者
read(filename, *) owners

评分

参与人数 1F 币 +10 收起 理由
jojo9 + 10

查看全部评分

天之道,损有余而补不足

35

帖子

11

主题

0

精华

熟手

F 币
241 元
贡献
140 点
地板
 楼主| 发表于 2021-9-14 22:32:17 | 只看该作者
胡文刚 发表于 2021-9-14 21:58
read(filename, *) owners

我人都傻了
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-12-24 02:17

Powered by Tencent X3.4

© 2013-2024 Tencent

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