Fortran Coder

查看: 26001|回复: 0
打印 上一主题 下一主题

[求助] 【求助】Fortran用stream流读取二进制文件问题2

[复制链接]

10

帖子

3

主题

0

精华

入门

F 币
67 元
贡献
43 点
QQ
跳转到指定楼层
楼主
发表于 2021-6-18 20:17:57 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
10F 币
本帖最后由 loveboyzmj 于 2021-7-16 07:37 编辑

各位专家,大家好,本人从事油藏工程分析工作,日常会用到油藏数模模拟器(均为fortran编写),目前手里有一个模拟器生成的二进制文件,我采用上一贴的解决方法,在读取这个文件里得数据时,最后出现了乱码:  @饱?N?
我用的编辑器是:simply fortran,代码如下, 感谢各位专家!!!
[Fortran] 纯文本查看 复制代码
Program www_fcode_cn

  Use, Intrinsic :: ISO_C_BINDING      !// 使用内部模块,保持与 C 语言变量类型一致

  Implicit None

  character(len=80) :: fline

  character(len=8) :: flag1             !// 8字节
  character(len=8) :: flag2             !// 8字节
  character(len=24) :: flag3            !// 8字节
  character(len=4) :: dtype             !// 数据类型

  integer(kind=4) :: i,j,k,n
  integer(kind=4) :: ii,jj,kk,NUM,B1,B2,B3
  real(kind=4):: x0,y0,x1,y1,x2,y2

  integer(kind=4) :: X

  integer vertex1(10)

  real vertex(24)

  real,ALLOCATABLE :: A(:)
  DOUBLE PRECISION,ALLOCATABLE :: B(:)
  integer,ALLOCATABLE :: C(:)

  integer,ALLOCATABLE :: INTE(:)
  DOUBLE PRECISION,ALLOCATABLE :: DOUB(:)
  real,ALLOCATABLE :: REALM(:)
  character,ALLOCATABLE :: CHARM(:)
  logical,ALLOCATABLE :: LOGI(:)

  Open(13, File = "BASE_FS_TEST_Streamline_1.out" , STATUS = 'New' , ACTION = 'Write') ! 打开名为test.out的1号文件

  Open( 12 , File = "BASE_FS_Test.sln0042" ,convert='BIG_ENDIAN', access="stream" , form ="unformatted")

  Read( 12 ) n,flag1,i,dtype,n

  Write(13,*) flag1

  if (i>0) then

     ALLOCATE(INTE(i))

     Read( 12 ) n,INTE,n

     Write(13,100)INTE
100  format(3i12)  

     DEALLOCATE(INTE)

     Write(13,*) "------------------------------------"

  end if


  Read( 12 ) n,flag1,i,dtype,n

  Write(13,*) flag1

  if (i>0) then

      ALLOCATE(DOUB(i))

     Read( 12 ) n,DOUB,n

     Write(13,101)DOUB
101  format(3f12.4)

     DEALLOCATE(DOUB)

     Write(13,*) "------------------------------------"

  end if

  Read( 12 ) n,flag1,i,dtype,n

  print *,flag1


  Close(12)

  Close(13)

  print *,"Over..."

End Program www_fcode_cn

二进制文件BASE_FS_Test.sln0042 下载地址:

链接:https://pan.baidu.com/s/17ivgE8IjWwyR5r-ugiPyEQ
提取码:pzj1
软件手册里文件格式描述:


分享到:  微信微信
收藏收藏1 点赞点赞 点踩点踩
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-4-25 05:03

Powered by Tencent X3.4

© 2013-2024 Tencent

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