Fortran Coder

查看: 20755|回复: 12
打印 上一主题 下一主题

[文件读写] 有没有内部函数能判断是否是文件的开始位置的办法

[复制链接]

178

帖子

15

主题

0

精华

大宗师

F 币
4973 元
贡献
1152 点
跳转到指定楼层
楼主
发表于 2018-12-19 14:01:04 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
想自己写一个程序计算当前所在的行数
才发现似乎Fortran有判断当前是文件末尾的办法,
却似乎没有判断是文件开始的办法啊
大佬们给小白指点指点呗……


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

178

帖子

15

主题

0

精华

大宗师

F 币
4973 元
贡献
1152 点
13#
 楼主| 发表于 2018-12-21 18:38:51 | 只看该作者
li913 发表于 2018-12-21 09:51
写个子程序返回当前的行数?这个我办不到,貌似fortran也办不到。系统函数也许行。 ...

反正顺序读取的位置只有行数啊,又没有在行里边的位置
只要先计算到文件末有多少行,然后Rewind后再数一遍有多少行
然后再回到初始位置不就OK了…………

178

帖子

15

主题

0

精华

大宗师

F 币
4973 元
贡献
1152 点
12#
 楼主| 发表于 2018-12-21 18:36:08 | 只看该作者
vvt 发表于 2018-12-21 08:21
用 stream 读写有格式(文本)文件就好了呀。见6楼和顺序读取完全兼容。但可以 Inquire 查询位置
...

你这么一提醒我明白了,确实stream流读有格式文件也没有问题
可以涵盖顺序读取的所有功能
不过你说这个和顺序读取兼容是怎么回事呢
难道意思是stream流也是可以按行读写么?

799

帖子

2

主题

0

精华

大宗师

F 币
3797 元
贡献
2270 点
11#
发表于 2018-12-21 09:51:31 | 只看该作者
liudy02 发表于 2018-12-20 16:48
哦,听你说过这个ifport扩展模块了
不过我自己还不是很了解,看来还是要啃编译器说明哪
用这个模块也不是 ...

写个子程序返回当前的行数?这个我办不到,貌似fortran也办不到。系统函数也许行。

954

帖子

0

主题

0

精华

大师

F 币
184 元
贡献
75 点

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

QQ
10#
发表于 2018-12-21 08:21:04 | 只看该作者
用 stream 读写有格式(文本)文件就好了呀。见6楼和顺序读取完全兼容。但可以 Inquire 查询位置

178

帖子

15

主题

0

精华

大宗师

F 币
4973 元
贡献
1152 点
9#
 楼主| 发表于 2018-12-20 16:48:38 | 只看该作者
li913 发表于 2018-12-20 12:10
ivf扩展函数getpos可以,文件头i=0。
use ifport
open(10,file=...)

哦,听你说过这个ifport扩展模块了
不过我自己还不是很了解,看来还是要啃编译器说明哪
用这个模块也不是不好,不过限定IVF了呀
我考虑自己写个自用的模块算了……
有格式文件反正是按行读取嘛,文件指针又不能再一行的中间
可以写个子程序计算文件的行数,也可以判断是文件的末尾和直接指定文件的首尾位置
那么自然也可以写个子程序返回当前的行数的,嗯嗯嗯,我真是太蛋疼了……

799

帖子

2

主题

0

精华

大宗师

F 币
3797 元
贡献
2270 点
8#
发表于 2018-12-20 12:10:47 | 只看该作者
ivf扩展函数getpos可以,文件头i=0。
use ifport
open(10,file=...)
i=getpos(10)

178

帖子

15

主题

0

精华

大宗师

F 币
4973 元
贡献
1152 点
7#
 楼主| 发表于 2018-12-19 22:47:24 | 只看该作者
fcode 发表于 2018-12-19 22:32
stream方式读取文件(有格式或无格式均可)
Inquire(Unit,pos=i)
如果 i == 1 就是开头 ...

哦哦,原来如是,看来这文件读取水还很深呢
只能慢慢琢磨了,非常感谢!

1963

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1357 元
贡献
574 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

6#
发表于 2018-12-19 22:32:50 | 只看该作者
stream方式读取文件(有格式或无格式均可)
Inquire(Unit,pos=i)
如果 i == 1 就是开头

178

帖子

15

主题

0

精华

大宗师

F 币
4973 元
贡献
1152 点
5#
 楼主| 发表于 2018-12-19 22:31:46 | 只看该作者
fcode 发表于 2018-12-19 22:27
文本文件顺序读取,没有办法判断是否是开头。

谢谢,看来还真是没有办法
不过这么说的话似乎无格式文件可以?
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-5-9 03:43

Powered by Tencent X3.4

© 2013-2024 Tencent

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