Record的序列化和反序列化
TDefaultMessage = record //网络包头
Ident: Integer;
nIsZlib: Integer;
nLength: Integer;
end;
//记录转字符串
function RecordToString(var Buf; bufSize: Integer; isZlib: Boolean): string;
//字符串转记录
function StringToRecord(sData: string; var outBuf; outSize: Integer; isZlib: Boolean): Boolean;
//获取一个包
function GetNetPacket(sData: string; var defMsg: TDefaultMessage; var msgBody, msgNone: string): Boolean;
function RecordToString(var Buf; bufSize: Integer; isZlib: Boolean): string;
var
str1: string;
begin
SetLength(str1, bufSize);
try
CopyMemory(PChar(str1), PChar(@Buf), bufSize);
if isZlib then
Result := ZCompressStr(str1)
else
Result := str1;
finally
SetLength(str1, 0);
end;
end;
function StringToRecord(sData: string; var outBuf; outSize: Integer; isZlib: Boolean): Boolean;
begin
if isZlib then
sData := ZDecompressStr(sData);
CopyMemory(PChar(@out