Fortran Coder

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

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

[复制链接]

178

帖子

15

主题

0

精华

大宗师

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


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

178

帖子

15

主题

0

精华

大宗师

F 币
4973 元
贡献
1152 点
沙发
 楼主| 发表于 2018-12-19 21:26:05 | 显示全部楼层
li913 发表于 2018-12-19 20:39
返回文件头,用 rewind

那个是定位到开头,不是判断是不是开头啊

178

帖子

15

主题

0

精华

大宗师

F 币
4973 元
贡献
1152 点
板凳
 楼主| 发表于 2018-12-19 22:31:46 | 显示全部楼层
fcode 发表于 2018-12-19 22:27
文本文件顺序读取,没有办法判断是否是开头。

谢谢,看来还真是没有办法
不过这么说的话似乎无格式文件可以?

178

帖子

15

主题

0

精华

大宗师

F 币
4973 元
贡献
1152 点
地板
 楼主| 发表于 2018-12-19 22:47:24 | 显示全部楼层
fcode 发表于 2018-12-19 22:32
stream方式读取文件(有格式或无格式均可)
Inquire(Unit,pos=i)
如果 i == 1 就是开头 ...

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

178

帖子

15

主题

0

精华

大宗师

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

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

178

帖子

15

主题

0

精华

大宗师

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

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

178

帖子

15

主题

0

精华

大宗师

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

反正顺序读取的位置只有行数啊,又没有在行里边的位置
只要先计算到文件末有多少行,然后Rewind后再数一遍有多少行
然后再回到初始位置不就OK了…………
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-5-9 04:27

Powered by Tencent X3.4

© 2013-2024 Tencent

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