我在读写二进制文件时,先用
seek(varf,lPos);定位到要读的地方,再用
BlockRead(varf,tRec,iRec,iread);
来读具体的内容到一个结构体tRec中。程序里有好几个地方是这样用的,一点问题都没有,但在一个过程里这样做就是不行,老是提示:I/O error 6调用seek和blockread时都会出现。文件打开模式是:
filemode:=fmOpenRead or fmShareDenyWrite; 
哪位大哥救命!

解决方案 »

  1.   

    是我错了,不好意思,浪费了大家的时间我在这个读文件之前还有一个读操作,在那个操作里,读文件多读了4个字节,然后在这里再定位时就错了。把那些多读的去掉以后就正常了。也就是这样的操作:seek(ftmp,0);
    blockread(ftmp,thead,sizeof(thead)  +4 ,iRead);seek(ftmp,sizeof(tHead));
    BlockRead(ftmp,tRec,sizeof(tRec),iRad);
    这样在第二次定位时就错了。当初第一次读时多读几个字节是用来调试的,后来忘了去掉了。