我想在内存中开辟一块空间,这个空间由三部分组成,第一部分是头(用字符串常量HEAD表示,比如const HEAD='55555'), 第二部分是数据块大小批示器(用一个整型变量dataSize指示,比如integer dataSize=1024),第三部分是实际数据的字节块,由dataSize指定。
因此分配的内存块的大小应该为:dataBlockSize=length(HEAD)+sizeof(integer)+dataSize,是不是?好,比如用函数GetMen(bufDataBlock,dataBlockSize)(其中 var bufDataBlock: Pointer)。
我的问题是:我要把HEAD的值'55555'填到bufDataBlock的第一个域中,把dataSize的值1024填到bufDataBlock的第二个域中,第三个域我要填的是从文件流中读出一个字节块,其大小由dataSize指示。怎么做这个填值操作呢?
顺便再一问下:如果我有了这一个数据块,我想把这三个域读出来,即第一个域我读到一个字符串变量中,每二域我读到一个整型变量中,第三个域我写一个文件流中,这怎么做呢?
感激不尽!!!!!!!!!
因此分配的内存块的大小应该为:dataBlockSize=length(HEAD)+sizeof(integer)+dataSize,是不是?好,比如用函数GetMen(bufDataBlock,dataBlockSize)(其中 var bufDataBlock: Pointer)。
我的问题是:我要把HEAD的值'55555'填到bufDataBlock的第一个域中,把dataSize的值1024填到bufDataBlock的第二个域中,第三个域我要填的是从文件流中读出一个字节块,其大小由dataSize指示。怎么做这个填值操作呢?
顺便再一问下:如果我有了这一个数据块,我想把这三个域读出来,即第一个域我读到一个字符串变量中,每二域我读到一个整型变量中,第三个域我写一个文件流中,这怎么做呢?
感激不尽!!!!!!!!!
解决方案 »
- fastreport打印数据库中数据
- 用fastreport报表时,打印预览上的工具栏的各个按钮能增加和删改吗?
- 一个稍微有点格路得问题,希望各位帮忙,如果解决另有高分相送
- 如何控制其他程序
- delphi 6的使用问题,各位捧场
- delphi中的类型转换问题!
- 在delphi中怎么调用父类的属性和方法
- 我想把c:\ss.cur设为edit1的光标,应如何做
- 是否可以用asp连接到delphi的midas服务器,并调用midas服务器上定义方法或tdatasetprovider的数据?
- firedac传参NULL值问题
- 急问:关于安装delphi7
- 怎樣在記錄被select出來後鎖定物理表中對應的記錄在完成操作後將其解鎖數據庫為sql2000
P^ := HEAD;//把HEAD的值'55555'填到bufDataBlock的第一个域中
Inc(p);
P^ := dataSize;//把dataSize的值1024填到bufDataBlock的第二个域中
Inc( p );
Move( 字节块, p^, datasize );//第三个域读:
p := bufDataBlock;
head := p^;
Inc(p);
dataSize := p^;
inc(p);文件流.write( p^, dataSize );