Fortran Coder

查看: 2304|回复: 7

[文件读写] write中unformatted格式输出,头尾二进制码的意义。

[复制链接]

2

帖子

1

主题

0

精华

新人

F 币
14 元
贡献
5 点
发表于 2022-10-3 13:53:57 | 显示全部楼层 |阅读模式
write函数在输出数据到文件时,使用unformatted格式,会在数据的头部和尾部各附加一个Int32类型的数表示数据的字节长度。但是当输出的数据字节长度大于Int32的最大值时,我发现数据头部有一个Int32,尾部却存在3个Int32长度的字符,无法解读其意义,从而造成fortran输出的文件没有办法用julia读取。在此请教write函数unformatted格式的细节。

790

帖子

2

主题

0

精华

大宗师

F 币
3765 元
贡献
2255 点
发表于 2022-10-3 15:12:09 | 显示全部楼层
不要用 unformatted,用stream,这才是真正的二进制,纯粹的二进制、
http://fcode.cn/guide-4-1.html

2

帖子

1

主题

0

精华

新人

F 币
14 元
贡献
5 点
 楼主| 发表于 2023-6-4 02:23:22 | 显示全部楼层
li913 发表于 2022-10-3 15:12
不要用 unformatted,用stream,这才是真正的二进制,纯粹的二进制、
http://fcode.cn/guide-4-1.html ...

我无法改变收到的数据格式,能否告诉我从哪里可以查到unformatted的编码的相关规范呢?

1947

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1295 元
贡献
545 点

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

发表于 2023-6-4 10:47:11 | 显示全部楼层
不是给你了吗?
http://fcode.cn/guide-4-1.html

大哥,一年了,您没点开看一看吗?

790

帖子

2

主题

0

精华

大宗师

F 币
3765 元
贡献
2255 点
发表于 2023-6-5 09:57:01 | 显示全部楼层
栗凛铃 发表于 2023-6-4 02:23
我无法改变收到的数据格式,能否告诉我从哪里可以查到unformatted的编码的相关规范呢? ...

这个很老的书有,现在不用了。

QQ截图20230605095508.jpg

790

帖子

2

主题

0

精华

大宗师

F 币
3765 元
贡献
2255 点
发表于 2023-6-5 10:03:17 | 显示全部楼层
这个可能是你需要的
1.jpg

790

帖子

2

主题

0

精华

大宗师

F 币
3765 元
贡献
2255 点
发表于 2023-6-5 11:23:44 | 显示全部楼层
事实上,当数据量过大,他会自动分段输出,你这个情况就是分成3段输出,所以文件中会多出4个4字节数据(数据量小,一段输出,只有首尾两个4字节数据,末尾这个数据其实代表下一段的数据量,应该为0)。
但由于输出大小超过int32范围,表示大小的值就乱了,进而输出的结果就乱了。
总结就是,数据量太大,不能用这种方法输出。

1947

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1295 元
贡献
545 点

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

发表于 2023-6-5 15:36:32 | 显示全部楼层
一个记录4GB的数据量,也是有点大~~
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-3-28 21:34

Powered by Tencent X3.4

© 2013-2024 Tencent

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