主题:二进制文件怎么用fortran读
duanxianzhe
[专家分:0] 发布于 2010-09-02 10:51:00
求哪位大侠在fortran怎么读写二进制文件方面给我指点迷津。。。最好能提供一个程序范例。。
最后更新于:2010-09-02 12:09:00
回复列表 (共22个回复)
沙发
jstzhurj [专家分:4680] 发布于 2010-09-02 11:39:00
你上传一个二进制文件,我读给你看。[em2]
板凳
duanxianzhe [专家分:0] 发布于 2010-09-02 11:46:00
好的,谢谢啊,不过我不知道怎么在回帖里插入文件。好像没有可插入的选项。。。
3 楼
jstzhurj [专家分:4680] 发布于 2010-09-02 11:52:00
[quote]好的,谢谢啊,不过我不知道怎么在回帖里插入文件。好像没有可插入的选项。。。[/quote]
修改,上传文件喽。[em15]
4 楼
duanxianzhe [专家分:0] 发布于 2010-09-02 11:55:00
还没有找着,、[em18]
5 楼
duanxianzhe [专家分:0] 发布于 2010-09-02 11:58:00
呵呵,找着了,已经上传了。。那就有劳大侠了啊
6 楼
jstzhurj [专家分:4680] 发布于 2010-09-02 12:01:00
看不到附件![em14]
7 楼
duanxianzhe [专家分:0] 发布于 2010-09-02 12:11:00
sorry,刚才上传的文件有点大,没上传成功,我又换了一个。。
8 楼
jstzhurj [专家分:4680] 发布于 2010-09-02 12:50:00
文件名怎么这么怪?数据结构知道吗?比如文件头多大?
9 楼
cgl_lgs [专家分:21040] 发布于 2010-09-02 13:30:00
如果你有其他语言编程经验,那就非常简单。打开文件时用BINARY就行了。
10 楼
jstzhurj [专家分:4680] 发布于 2010-09-02 13:59:00
由于不知道文件数据结构,暂且给出下面的程序,具体怎么做需要了解文件结构
估计开始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
我来回复