第一种方法,适合于 Windows 下 visual fortran 编译器。(compaq 或 intel)
通过 Open 语句,设置 Access = 'Direct' , Form = 'Unformatted' , RecL = 1
然后通过设置编译器工程属性的 Fortran,Data,Use Bytes as RECL= Unit for Unformatted Files 来改变。
第二种方法,适合于所有 windows 下支持 API 接口的编译器。
通过 CreateFile 打开文件。
通过 ReadFile 读取文件,每次可指定读取任意字节的内容。
第三种方法,适合任意编译器,但稍微麻烦,且别扭。
通过 Open 语句,设置 Access = 'Direct' , Form = 'Unformatted' , RecL = 1
如果该编译器的 RecL = 1 表示 4 字节,则通过设定一个4长度的字符串,读取一个 Rec 后,取该字符串的子串。例如 character(len=4) c integer i read( 12 , rec = 记录号 ) c i = c(1)
给你一个例子:Program main
Implicit None
Integer*4 :: iVar1 , iVar2
Real*4 :: rVar1 , rVar2
Character(Len=16) :: cStr
Open( 12 , File = 'TestBin.Bin' , Access = 'Direct' , Form = 'Unformatted' , RecL = 4 )
Read( 12 , Rec = 2 ) cStr
Read( 12 , Rec = 1 ) iVar1 , iVar2 , rVar1 , rVar2
Write( * , * ) cStr
Write( * , * ) iVar1 , iVar2 , rVar1 , rVar2
Close( 12 )
End Program main
二进制文件为Test.Bin
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)