回 帖 发 新 帖 刷新版面

主题:[提问帖]二进制文件中包含有windows语言输出的时间变量,如何读取

因为是他人采用windows程序编写的二进制文件,里面包含有大量时间变量,改时间变量是8字节的长整型变量,fortran中整形变量好像最大也只有4个字节,是否有其他变量可读取。谢谢指教,急

回复列表 (共9个回复)

沙发

不支持 integer(8)么?

板凳

fortran里面整型最多只有4个字节

3 楼

一般fortran编译器是支持integer(kind=8)的

4 楼

哦,谢谢楼上指教,我再试试,但是就算用长整型读取出来,再将其转化为日期和时间也非常麻烦,fortran里面没有相应的变量读取它么?

5 楼

还是不行,贴下我的程序帮我参谋参谋
character*8 DeviceName    !
integer*2 XMax            !
integer*2 XMin            !
integer*2 YMax
integer*2 YMin
integer(kind=4) Time


open(1,file='set-1-2010-10-22-232510.ac',form='binary')
read(1) DeviceName,XMax,XMin,YMax,YMin,Time
close(1)

最后一个时间变量还是只能给4个字节

6 楼

有没有哪位大侠愿意帮我看一看,我将源文件传给你,拜托了,急

7 楼

读取二进制文件就需要对它写入的格式要清楚. 该是什么类型就用什么类型. 所以不明白楼主你说的"其他变量可读取"是什么意思.
我对二进制文件读取不熟悉, 你可以看看论坛以前的帖子
http://bbs.pfan.cn/searchbbs.asp?keyword=%B6%FE%BD%F8%D6%C6%CE%C4%BC%FE&search=1&bbsid=16

8 楼

写入格式就是采用C++还是新版本的VB写出的占8字节的整形变量,不知道在fortran中怎么读出,谢谢了

9 楼

用fortran2003的iso_c_binding很好解决

c的long对应fortran的integer(c_long)
c和long long对应fortran的integer(c_long_long)

我来回复

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