Fortran Coder

查看: 71|回复: 3

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

[复制链接]

19

帖子

5

主题

0

精华

入门

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

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

owner - 副本.txt

276 Bytes, 下载次数: 1

回复

使用道具 举报

19

帖子

5

主题

0

精华

入门

F 币
92 元
贡献
55 点
 楼主| 发表于 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个的读入一维数组,最后把最后一行数据读入数组。

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

77

帖子

0

主题

0

精华

专家

F 币
544 元
贡献
234 点

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

发表于 2021-9-14 21:58:26 | 显示全部楼层
read(filename, *) owners

评分

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

查看全部评分

天之道,损有余而补不足

19

帖子

5

主题

0

精华

入门

F 币
92 元
贡献
55 点
 楼主| 发表于 2021-9-14 22:32:17 | 显示全部楼层
胡文刚 发表于 2021-9-14 21:58
read(filename, *) owners

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

本版积分规则

QQ|捐赠本站|Archiver|关于我们 About Us|群聊|Fcode

GMT+8, 2021-9-24 06:59

Powered by Discuz! X3.2

© 2001-2017 Comsenz Inc.

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