是否可以倒序(从文件尾开始)读二进制文件的?

是否可以倒序(从文件尾开始)读二进制文件的?

要读二进制文件,然后转换再比较。
由于有用的数据(实际就是最新的数据)都在文件尾部,这样从头开始读并转换比较的话,所费时间很长了。

是否有从文件尾部开始读的方法?这样只要处理很小一部分的数据就可以了,处理速度就可以大大加快了。
换个方法思考不行吗?  把新数据都放在文件开头 不可以吗?


这个,不行。因为要处理的文件,格式不是我能控制的

我想从文件尾开始读文件,应该是不可行的,估计是操作系统的文件组织结构,已经限制了

还是只能从头读,只读取比较的那一部分标志,

if (不符合条件的话) {
    read(BINFIEL,$skipbyte,num) ;
      next ;}                                    # 原来在一个while循环里处理的

跳过去,不浪费时间处理了。直到条件符合,再开始处理转换,并写入文件

原来一个多小时干的活(符合不符合条件都转换),现在只要十来分钟吧(依情况而定),无用数据没有了,因此数据库加载时间也大大缩短,基本达到目的了
要不你问问  咱们那个 放驴玩的版主!   他很强大!
  

咋叫放驴玩的版主?

我想文件系统的组织形式限定了吧,记得似乎是链式的?文件头->数据块,下一块数据的地址->重复。。。

似乎这样的结构,就只能从头读起了,不可以反过来从尾读

不管怎样,我改了之后,性能相对可以满足了。以前转换一个多小时,加载一个来小时,现在二十来分钟差不多了吧,如果只取很小一部分的话
perldoc -f seek
如果你知道所需内容所在的字节位置的话就用seek
seek(FH, 100, SEEK_END)