小编Har*_*Rad的帖子

写入二进制文件

我正在尝试在 Fortran 90 中编写 STL 二进制文件。该文件具有以下格式

HEADER:80 字节 ASCII 标头 - TITLE

4 字节无符号长整型,NO。刻面数量

每个方面的格式:

法向量,3 个浮点值,每个值 4 字节;

顶点 1 XYZ 坐标,3 个浮点值,每个值 4 字节;

顶点 2 XYZ 坐标,3 个浮点值,每个值 4 字节;

顶点 3 个 XYZ 坐标,3 个浮点值,每个值 4 字节;

2 个字节的无符号整数,应该为零;

我正在尝试创建一个未格式化的文件来写入相关信息,但在定义正确的记录长度时遇到问题。假设我有N个facet,我使用以下命令打开并写入信息

open(unit = 1, status = 'replace', iostat = ioerror, format = 'unformatted', access = 'direct', recl = 84 + N * 50, file = 'c:\temp\test.stl')
Run Code Online (Sandbox Code Playgroud)

我可以发出第一个写入语句来写出标头信息,然后发出第二个写入语句(在 do 循环内)来写出方面信息吗?

如果是这样,由于我有不同记录长度的标头和方面信息,因此每个写入语句需要的记录号是多少。

write(1,rec=?), *header information*
do,i=1,N,1
   write(1,rec=?), *facet information* …
Run Code Online (Sandbox Code Playgroud)

fortran binaryfiles stl-format

4
推荐指数
1
解决办法
4541
查看次数

标签 统计

binaryfiles ×1

fortran ×1

stl-format ×1