Fortran中,open的recl参数有什么意义?书上说是一次读取的数据量,不太理解哈~
与之对应的是read中的rec,rec又有何意义呢?请高手举个例子,指点一二~谢谢!为何要把数据划分模块?为何规定一次读取的数据量?比如对与read来讲,从文本文件中读取...
与之对应的是read中的rec,rec又有何意义呢?请高手举个例子,指点一二~谢谢!
为何要把数据划分模块?为何规定一次读取的数据量?比如对与read来讲,从文本文件中读取数据时,默认每一次读取一行,这和recl有何关系呢? 展开
为何要把数据划分模块?为何规定一次读取的数据量?比如对与read来讲,从文本文件中读取数据时,默认每一次读取一行,这和recl有何关系呢? 展开
1个回答
展开全部
recl 是对直接读取方式的。如果是顺序读取,则不起作用。
如果没有设置读取方式,默认应该是文本文件顺序读取。
对于直接读取方式(access='direct'),recl规定每笔记录的长度(字节,或字节*4),不同编译器含义不同。
以后,你想读取哪笔记录,比如第 50 笔记录。就直接 read( 通道号 , rec = 50 ) 就可以了。
如果是文本文件,要用直接读取,必须要求每一行都一样长。
如果是二进制文件,通常采用直接读取,因为数据往往是对齐的。
一般来说,文本文件建议用顺序读取,二进制文件建议用直接读取。
尽量不要采用文本文件直接读取(要求每行一样长),也不要采用二进制文件顺序读取(要求前后各4字节表示本次读取的长度)
更多内容请百度搜索:“Fortran读写二进制文件 写给新手”
如果没有设置读取方式,默认应该是文本文件顺序读取。
对于直接读取方式(access='direct'),recl规定每笔记录的长度(字节,或字节*4),不同编译器含义不同。
以后,你想读取哪笔记录,比如第 50 笔记录。就直接 read( 通道号 , rec = 50 ) 就可以了。
如果是文本文件,要用直接读取,必须要求每一行都一样长。
如果是二进制文件,通常采用直接读取,因为数据往往是对齐的。
一般来说,文本文件建议用顺序读取,二进制文件建议用直接读取。
尽量不要采用文本文件直接读取(要求每行一样长),也不要采用二进制文件顺序读取(要求前后各4字节表示本次读取的长度)
更多内容请百度搜索:“Fortran读写二进制文件 写给新手”
本回答被提问者采纳
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询