TAT

* 按照顺序写入和读出,不关心原来的变量名的,不记录写的顺序。 * 存储基本大端字节序存储。 * 二进制格式: * 对于基本和内置组合类型: 数据的长度是固定的。 * 类型头 数据部分 * 00 __data__ * 类型头的定义见type.d 文件 * Struct 组合类型: * 类型头 数据部分 结束标志(Types.End) * 0x0F __data__ 0x00 * 结构提在写入的时候是每个成员都按照顺序写入,元素是结构提也是嵌套写入,数组一样。 * Array 数组类型: * 类型头 元素的类型标志 元素的个数(4Byte) 数据部分 结束标志(Types.End) * 0x10 00 00 00 00 00 __data__ 0x00 * 如果数组成员是结构体或者数组,记录的也只是Type.Struct和Types.Array, 其__data__部分也是和单独写一样的遵照标志写的是全部的和单独一样, * 对于结构体不关系结构体的结构信息,根据类型头和结束标志区分。数组一样,不关系数组的类型长度,只根据开始和结束标志区分。 * 对于基本类型和内置组合类型,数据部分和单独写不一样的,省略其类型信息,类型信息根据数组的“元素的类型标志”获取的,即认为每个元素类型是一致的,元素自己的长度是固定的。 * * 例子: * 对于TAT 结构的二进制后的数据: * 15, // TAT 开始的标志, 0x0F * * 15 // TAT.ta第一个元素ta的开始标志 TA 类型: 0x0F * 13, 0, 1, 1, 1, // TAT.TA.de ,Date类型:0x0D(13), 数据4位 * 16 // TAT.TA.data 数组类型,尅是标志0X10(16) * 2 // TAT.TA.data 的元素类型: ubyte (0x02) * 0, 0, 0, 5, //AT.TA.data 的元素个数: 5 个 * 0, 1, 3, 4, 5, //AT.TA.data data 数据不部分 * 00 // TAT.TA.data 的结束标志位 * 16 //TAT.TA.str 数组开始类型头 Note: string 不可变的 char数组 * 1 // TAT.TA.str 元素类型: char * 0, 0, 0, 11, // TAT.TA.str 元素个数 * 104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100 // TAT.TA.str 数据部分 * 0 // TAT.TA.str 结束标志 * 11, 64, 41, 40, 245, 194, 143, 92, 41, //TAT.TA.db double数据类型 0x0B(11),后面8位为数据部分 * 8, 0, 0, 0, 0, 0, 0, 3, 129, //TAT.TA.lo long类型 0x08(8),后面8位为数据部分 * 3, 0, // TAT.TA.bl bool类型 0x03(3) , 0 是 flase * 7, 0, 0, 0, 90,// TAT.TA.ui uint类型 0x07(7) , 剩下的是数据部分 * 15, // TAT.TA.ta 结构体开始标志位 * 10, 62, 131, 18, 111, // TAT.TA.TT.ft float类型0x0A(10),4个字节长度 * 14, 7, 223, 2, 15, 10, 25, 30, // TAT.TA.TT.dt DateTime类型0x0E(14),7个字节长度 * 0, // TAT.TA.ta 结构体结束标志位 * 16 // TAT.TA.iarry 数组开始标志位 * 6 // TAT.TA.iarry 数组的元素类型 int : 0x06(6) * 0, 0, 0, 10, // TAT.TA.iarry 数据长度 * 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 9,// TAT.TA.iarry 数据部分 * 0 //TAT.TA.iarry 结束标志 * 0// TAT.ta 结构体结束标志 * * 16// TAT.tt 数组的开始标志 * 15 // TAT.tt 数组元素类型 * 0, 0, 0, 3, TAT.tt 数组元素长度 * 15 // TAT.tt[0] 开始标志 * 10, 62, 131, 18, 111, // TAT.tt[0].ft * 14, 7, 223, 2, 15, 10, 25, 30, // TAT.tt[0].dt * 00 // TAT.tt[0] 开结束标志 * 15, 10, 63, 160, 196, 156, 14, 7, 224, 2, 15, 10, 25, 30, 0, // TAT.tt[1] * 15, 10, 64, 16, 98, 78, 14, 7, 225, 2, 15, 10, 25, 30, 0, // TAT.tt[2] * 0 // TAT.tt 数组的结束标志 * * 16, // TAT.ttt 数组的开始标志 * 16 // TAT.ttt 数组的元素类型, 还是数组,数组嵌套 * 0, 0, 0, 2, //TAT.ttt 数组长度 * 16 //TAT.ttt[0] 开始标志 * 15 // TAT.ttt[0] 的元素类型, 结构体 * 0, 0, 0, 3 // TAT.ttt[0] 的元素个数 * 15, 10, 62, 131, 18, 111, 14, 7, 223, 2, 15, 10, 25, 30, 0, //TAT.ttt[0][0] 结构提类型 * 15, 10, 62, 182, 69, 162, 14, 7, 224, 2, 15, 10, 25, 30, 0, //TAT.ttt[0][1] * 15, 10, 62, 233, 120, 213, 14, 7, 225, 2, 15, 10, 25, 30, 0, //TAT.ttt[0][2] * 0 //TAT.ttt[0] 结束标志 * 16 //TAT.ttt[1] 开始标志 * 15 TAT.ttt[1] 的元素类型, 结构体 * 0, 0, 0, 3 // TAT.ttt[1] 的元素个数 * 15, 10, 63, 160, 196, 156, 14, 7, 226, 2, 15, 10, 25, 30, 0, //TAT.ttt[1][0] * 15, 10, 63, 173, 145, 104, 14, 7, 227, 2, 15, 10, 25, 30, 0, //TAT.ttt[1][1] * 15, 10, 64, 22, 200, 180, 14, 7, 228, 10, 2, 10, 25, 30, 0, //TAT.ttt[1][2] * 0 //TAT.ttt[1] 结束标志 * 0// TAT.ttt 数组的结束标志 * * 0 // TAT 结束标志 *

Members

Functions

getD
int getD()
Undocumented in source. Be warned that the author may not have intended to support it.
intd
void intd()
Undocumented in source. Be warned that the author may not have intended to support it.

Manifest constants

AA
enum AA;
Undocumented in source.

Mixins

__anonymous
mixin Serialize!TAT
Undocumented in source.

Variables

ta
TA ta;
Undocumented in source.
tt
TT[] tt;
Undocumented in source.
ttt
TT[][] ttt;
Undocumented in source.

Meta