在DELPHI环境下把多种记录变量按字节流读入同一段开辟的内存中,记录里的字段包
含的数据类型有:Byte,char,Word,Integr,string等。可以不用Tmemorystream,
而是自己象C里面那样定义一个8位无符号指针,指向一段内存。好象DELPHI里面类型转换
没有C方便,如CHAR 和BYTE同时8位无符号的类型,之间转换就很困难。哪位大侠就这方面
的使用谈谈经验。
含的数据类型有:Byte,char,Word,Integr,string等。可以不用Tmemorystream,
而是自己象C里面那样定义一个8位无符号指针,指向一段内存。好象DELPHI里面类型转换
没有C方便,如CHAR 和BYTE同时8位无符号的类型,之间转换就很困难。哪位大侠就这方面
的使用谈谈经验。
procedure TForm1.Button1Click(Sender: TObject);
var
data: array[1..3] of byte;
begin
data[1]:=97;
data[2]:=98;
data[3]:=99;
ShowMessage(copy(PChar(@Data[1]),1,3));
end;
先写几个函数
如读Byte,Word,string;
读byte:
function GetbyteFromArr(var pstr:pchar):byte;
var
ch1:char;
begin
ch1 :=char(pstr^);
inc(pstr);
result:=byte(ch1);
end;
读word
function GetWordFromarr(var pstr:pchar):word;
var Highbyte,lowbyte:byte;
begin
highbyte:=GetbyteFromArr(var pstr:pchar);
lowbyte:=GetbyteFromarr(var pstr:pchar);
result:=(word(highbyte) shr 8 ) or word(lowbyte);
end;读string;
function GetstrFromarr(var pstr:pchar):string;
var strlen:word;
begin
strlen := Getwordfromarr(pstr);
result := pstr;
Inc(pstr, strlen);
end;