回 帖 发 新 帖 刷新版面

主题:二进制文件怎么用fortran读

求哪位大侠在fortran怎么读写二进制文件方面给我指点迷津。。。最好能提供一个程序范例。。

回复列表 (共22个回复)

沙发


你上传一个二进制文件,我读给你看。[em2]

板凳

好的,谢谢啊,不过我不知道怎么在回帖里插入文件。好像没有可插入的选项。。。

3 楼

[quote]好的,谢谢啊,不过我不知道怎么在回帖里插入文件。好像没有可插入的选项。。。[/quote]

修改,上传文件喽。[em15]

4 楼


还没有找着,、[em18]

5 楼


呵呵,找着了,已经上传了。。那就有劳大侠了啊

6 楼


看不到附件![em14]

7 楼


sorry,刚才上传的文件有点大,没上传成功,我又换了一个。。

8 楼


文件名怎么这么怪?数据结构知道吗?比如文件头多大?

9 楼

如果你有其他语言编程经验,那就非常简单。打开文件时用BINARY就行了。

10 楼

由于不知道文件数据结构,暂且给出下面的程序,具体怎么做需要了解文件结构
估计开始64 words是文件头,后面是数据。

以4096 words为一个block,程序统计了该文件有多少个block。

      program mian
      program mian
      character*20 filein
      integer,parameter::len_head_read=64,len_block_read=4096
      integer*2,dimension(1:len_block_read):: iblock_read
      integer*2,dimension(1:len_head_read):: headblk
    integer iopen_evt,iread_evt,iblock

    filein='traj.trr'

      open(10,file=filein,form='binary',action='read', status='old',iostat=iopen_evt)
      if (iopen_evt.ne.0) then
       write(*,100) filein
       stop
      else
       read(10,iostat=iread_evt) headblk
!       write(*,*) headblk
    
       Do While (.true.) 
        read(10,iostat=iread_evt,end=20) iblock_read
        iblock=iblock+1
!        write(*,*) iblock_read
       end do
      endif

   20 close (10)
      write(*,*) iblock
 
  100 format('---> File: ', a,' openned error!')

    end program

我来回复

您尚未登录,请登录后再回复。点此登录或注册