我这有个判断是否为EXE的例子,里面关于如何读写二进制
流讲的很清楚,你可以写一个链表的数据结构,把你要求的
头放进去,然后写到二进制流里面.
<P>将文件头读进来,判断否否Exe </P>
<P>offset(0) -$5a45 'MZ'</P>
<P>offset($80) = 'PE' WIN32 EXE</P>
<P>offset($100) = 'NE' WIN16 EXE</P>
<P> </P>
<P> e_magic:SmallInt</P>
<P> buffer:array[0..255] of byte;</P>
<P> FStream:TFileStream;</P>
<P> </P>
<P> FStream:=TFileStream.Create(Filename,fmOpenRead+fmShareDenyNone);</P>
<P> Try</P>
<P> FStream.Read(buffer,256);</P>
<P> if SmallInt(buffer[0]) &lt;&gt;$5A4D then</P>
<P> FIsMSDos:=False</P>
<P> else</P>
<P> FIsMSDos:=True;</P>
<P> </P>
<P> nPos:=$80 </P>
<P> </P>
<P> if (buffer[nPos+0]='P') and (buffer[nPos+1]='E') and (buffer[nPos+2]=#0) and (buffer[nPos+3]=#0) then</P>
<P> FIsPE:=True;</P>
<P> </P>
<P> finally</P>
<P> FStream.Free;</P>
<P> </P>
<P> nPos:=$100 </P>
<P> if (buffer[nPos+0]='N') and (buffer[nPos+1]='E') then</P>
<P> FIsNE:=True;</P>
<P> </P>
<P> </P>
<P> </P>
自定义文件头,还不如直接利用数据库方便,把你想用二进制
储存的内容用B不就行了吗