我定义了一种文件结构用于存储一本漫画,实际上是将jpg图片一个接一个连续的写入一个文件
文件结构:
书名 语言 页数
页号(2字节)
文件块(1000字节) 标志(1字节)
文件块(1000字节) 标志(1字节)
文件块(1000字节) 标志(1字节)
……
文件块(1000字节) 标志(1字节)标志为255标示一页结束
页号(2字节)
文件块(1000字节) 标志(1字节)
文件块(1000字节) 标志(1字节)
文件块(1000字节) 标志(1字节)
……
文件块(1000字节) 标志(1字节)标志为255标示一页结束
……
为什么我读出第一个图片后,再读第二个图片就出错
我声明了一个记录类型
Tinfo=packed record
name:string;
lang:string;
pagecount:word;
end;
①我先读信息,即书名,语言,页数
var
info:tinfo;
id:word;
abook,temp:file;
bytesread,byteswritten:integer;
buffer:array [1..1000] of byte;
flag:byte;
blockread(abook,info,sizeof(info),bytesread);
②然后度页号
blockread(aboook,id,sizeof(id),bytesread);
③再读一块,读一标志;读一块,读一标志;读一块,读一标志;……直至标志为255
repeat
blockread(abook,buffer,sizeof(buffer),bytesread);
blockwrite(temp,buffer,bytesread,byteswritten);
blockread(abook,flag,sizeof(flag),bytesread);
until flag=255;
④重复②③读下一个图片
读第一个图片很正常,读第二个图片时,我调试发现读出来的id值为24576,我不知道什么原因,哪位高手来指点指点,如需源码告诉我email,我发给你
文件结构:
书名 语言 页数
页号(2字节)
文件块(1000字节) 标志(1字节)
文件块(1000字节) 标志(1字节)
文件块(1000字节) 标志(1字节)
……
文件块(1000字节) 标志(1字节)标志为255标示一页结束
页号(2字节)
文件块(1000字节) 标志(1字节)
文件块(1000字节) 标志(1字节)
文件块(1000字节) 标志(1字节)
……
文件块(1000字节) 标志(1字节)标志为255标示一页结束
……
为什么我读出第一个图片后,再读第二个图片就出错
我声明了一个记录类型
Tinfo=packed record
name:string;
lang:string;
pagecount:word;
end;
①我先读信息,即书名,语言,页数
var
info:tinfo;
id:word;
abook,temp:file;
bytesread,byteswritten:integer;
buffer:array [1..1000] of byte;
flag:byte;
blockread(abook,info,sizeof(info),bytesread);
②然后度页号
blockread(aboook,id,sizeof(id),bytesread);
③再读一块,读一标志;读一块,读一标志;读一块,读一标志;……直至标志为255
repeat
blockread(abook,buffer,sizeof(buffer),bytesread);
blockwrite(temp,buffer,bytesread,byteswritten);
blockread(abook,flag,sizeof(flag),bytesread);
until flag=255;
④重复②③读下一个图片
读第一个图片很正常,读第二个图片时,我调试发现读出来的id值为24576,我不知道什么原因,哪位高手来指点指点,如需源码告诉我email,我发给你
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货