数据存储到流几种形式(数据流 TStream)
1. 字符串存储到数据流
s:string;
l:=length(s);
Stream.WriteBuffer(Pointer(s)^,length(s) );//字符串地址 及长度
读取字符串
Text:string;
SetString(Text, nil,
iLen);
Stream.Read(Pointer(Text)^, iLen);
2.基本数据类型格式都是:数值,字节大小
Stream.Write(ivalue, SizeOf(Integer));//整型
Stream.Write(bValue,
SizeOf(boolean));//布尔型
读取
Stream.Read(iLen, sizeof(Integer));
3.结构体存储
type
TDataHead=record
id:integer;
name:string[12];
bValue:boolean;
dvalue:double;
end;
pTDataHead=^TDataHead;//结构体指针
var
DataHead:TDataHead;
pDataHead:pTDataHead;//指针
Stream.WriteBuffer(DataHead,
sizeof(TDataHead));//结构体
Stream.WriteBuffer(pDataHead^,
sizeof(TDataHead));//结构体 指针
需要说明的是:结构体套结构体,依然可以使用上述方法存储到数据流内,
反向读取后,数据完整,不会有错误
读取
Stream.Read(DataHead,
sizeof(TDataHead));//结构体
Stream.Read(pDataHead^,
sizeof(TDataHead));//结构体 指针
4.数据流存储到流里
TargetStream.CopyFrom(SourceStream, isize);
//isize=0,SourceStream所有数据全部存储到TargetStream
>0 SourceStream内isize字节数据存储到TargetStream内
TargetStream.WriteBuffer(SourceStream^, isize);//isize 同上
读取字符串
2.基本数据类型格式都是:数值,字节大小
3.结构体存储
var
4.数据流存储到流里
//isize=0,SourceStream所有数据全部存储到TargetStream
>0 SourceStream内isize字节数据存储到TargetStream内
TargetStream.WriteBuffer(SourceStream^, isize);//isize 同上