fundamentals5 protobuf使用
fundamentals5 protobuf使用
1)编辑.proto结构文件

2)编译生成ProtoBufCodeGen.exe。
.\ProtoBufCodeGen tables.proto
3)根据.proto结构文件自动生成pascal源码文件pbTablesMessages.pas。
3)编写测试代码
procedure TForm1.Button1Click(Sender: TObject);
begin
var t: TTablesRecord;
SetLength(t.GoodsArr, 1);
SetLength(t.UnitsArr, 9999);
var sp: TGoodsRecord;
sp.Goodsid_HasValue := True;
sp.Goodsid := '1';
sp.Goodsname_HasValue := true;
sp.Goodsname := '商品';
t.GoodsArr[0] := sp;
var dw: TUnitsRecord;
for var i: Integer := 0 to 9998 do
begin
dw.Unitid_HasValue:=true;
dw.Unitid := i.ToString;
dw.Unitname_HasValue:=true;
dw.Unitname := i.ToString;
t.UnitsArr[i] := dw;
end;
var b: tbytes;
var l: Integer := SizeOf(sp) + SizeOf(dw)*9999;
SetLength(b, l);
l := pbEncodeValueTablesRecord(b[0], l, t);
var t2: TTablesRecord;
l := pbDecodeValueTablesRecord(b[0], l, t2);
for var dw2: TUnitsRecord in t2.UnitsArr do
begin
Memo1.Lines.Add(dw2.Unitid);
Memo1.Lines.Add(dw2.Unitname);
end;
end;
本文来自博客园,作者:{咏南中间件},转载请注明原文链接:https://www.cnblogs.com/hnxxcxg/p/15164910.html

浙公网安备 33010602011771号