procedure
TForm1.btnDat2XmlClick(Sender: TObject);
var
XMLDoc: TXMLDocument;
Node1: IXMLNode;
Node2: IXMLNode;
MyStream: TMemoryStream;
i: integer;
begin
if FileExists( ' .\GoodsSale_Tw.dat ' ) then begin
XMLDoc : = TXMLDocument.Create( nil );
XMLDoc.Active : = True;
XMLDoc.Version : = ' 1.0 ' ;
XMLDoc.Encoding : = ' GB2312 ' ;
XMLDoc.Options : = [doNodeAutoCreate, doNodeAutoIndent, doAttrNull, doAutoPrefix, doNamespaceDecl];
XMLDoc.DocumentElement : = XMLDoc.CreateNode( ' table ' );
myStream : = TMemoryStream.Create;
myStream.LoadFromFile( ' .\GoodsSale_Tw.dat ' );
Count : = (myStream.Size - 40 ) div 10 ;
// myStream.ReadBuffer(Head[ 0 ], 10 );
MyStream.Position : = 10 ;
for i : = 0 to Count - 1 do
begin
new(Pgshop);
MyStream.Read(Pgshop^, sizeof(gshop_info));
Node1 : = XMLDoc.DocumentElement;
Node2 : = Node1.AddChild( ' row ' );
if ((i + 1 ) mod 2 ) <> 0 then begin
Node2.SetAttributeNS( ' 大类 ' , '' , Pgshop^.a1 xor $ 72 );
Node2.SetAttributeNS( ' 位置 ' , '' , Pgshop^.a2 xor $ 67 );
Node2.SetAttributeNS( ' 物品ID ' , '' , Pgshop^.a3 xor $AA13);
Node2.SetAttributeNS( ' 折叠数量 ' , '' , Pgshop^.a5 xor $ 86 );
Node2.SetAttributeNS( ' 价格 ' , '' , Pgshop^.a6 xor $DFB0);
Node2.SetAttributeNS( ' 功能1 ' , '' , Pgshop^.a8 xor $C2);
Node2.SetAttributeNS( ' 功能2 ' , '' , Pgshop^.a9 xor $C8);
Node2.SetAttributeNS( ' 标识 ' , '' , Pgshop^.a10 xor $9D);
end else begin
Node2.SetAttributeNS( ' 大类 ' , '' , Pgshop^.a1 xor $4E);
Node2.SetAttributeNS( ' 位置 ' , '' , Pgshop^.a2 xor $B0);
Node2.SetAttributeNS( ' 物品ID ' , '' , Pgshop^.a3 xor $D103);
Node2.SetAttributeNS( ' 折叠数量 ' , '' , Pgshop^.a5 xor $BC);
Node2.SetAttributeNS( ' 价格 ' , '' , Pgshop^.a6 xor $ 8E05 );
Node2.SetAttributeNS( ' 功能1 ' , '' , Pgshop^.a8 xor $ 07 );
Node2.SetAttributeNS( ' 功能2 ' , '' , Pgshop^.a9 xor $ 92 );
Node2.SetAttributeNS( ' 标识 ' , '' , Pgshop^.a10 xor $ 80 );
end ;
end ;
// myStream.ReadBuffer(LastRecord, 10 );
// myStream.ReadBuffer(Bottom[ 0 ], 20 );
XMLDoc.SaveToFile( ' .\GoodsSale_Tw.xml ' );
XMLDoc.Free;
myStream.Free;
end ;
end ;
procedure TForm1.btnXml2DatClick(Sender: TObject);
var
XMLDoc: TXMLDocument;
Node, Node1: IXMLNode;
MyStream: TMemoryStream;
i, Count: integer;
begin
if FileExists( ' .\GoodsSale_Tw.xml ' ) then begin
XMLDoc : = TXMLDocument.Create(Application);
XMLDoc.LoadFromFile( ' .\GoodsSale_Tw.xml ' );
XMLDoc.Active : = True;
Node : = XMLDoc.DocumentElement;
Count : = Node.ChildNodes.Count;
myStream : = TMemoryStream.Create;
myStream.Write(Head[ 0 ], Length(Head));
for i : = 0 to Count - 1 do begin
Node1 : = XMLDoc.DocumentElement.ChildNodes[i];
new(Pgshop);
if ((i + 1 ) mod 2 ) <> 0 then begin
Pgshop^.a1 : = Byte(StrToInt(Node1.Attributes[ ' 大类 ' ])) xor $ 72 ;
Pgshop^.a2 : = Byte(StrToInt(Node1.Attributes[ ' 位置 ' ])) xor $ 67 ;
Pgshop^.a3 : = StrToInt(Node1.Attributes[ ' 物品ID ' ]) xor $AA13;
Pgshop^.a5 : = Byte(StrToInt(Node1.Attributes[ ' 折叠数量 ' ])) xor $ 86 ;
Pgshop^.a6 : = StrToInt(Node1.Attributes[ ' 价格 ' ]) xor $DFB0;
Pgshop^.a8 : = Byte(StrToInt(Node1.Attributes[ ' 功能1 ' ])) xor $C2;
Pgshop^.a9 : = Byte(StrToInt(Node1.Attributes[ ' 功能2 ' ])) xor $C8;
Pgshop^.a10 : = Byte(StrToInt(Node1.Attributes[ ' 标识 ' ])) xor $9D;
end else begin
Pgshop^.a1 : = Byte(StrToInt(Node1.Attributes[ ' 大类 ' ])) xor $4E;
Pgshop^.a2 : = Byte(StrToInt(Node1.Attributes[ ' 位置 ' ])) xor $B0;
Pgshop^.a3 : = StrToInt(Node1.Attributes[ ' 物品ID ' ]) xor $D103;
Pgshop^.a5 : = Byte(StrToInt(Node1.Attributes[ ' 折叠数量 ' ])) xor $BC;
Pgshop^.a6 : = StrToInt(Node1.Attributes[ ' 价格 ' ]) xor $ 8E05 ;
Pgshop^.a8 : = Byte(StrToInt(Node1.Attributes[ ' 功能1 ' ])) xor $ 07 ;
Pgshop^.a9 : = Byte(StrToInt(Node1.Attributes[ ' 功能2 ' ])) xor $ 92 ;
Pgshop^.a10 : = Byte(StrToInt(Node1.Attributes[ ' 标识 ' ])) xor $ 80 ;
end ;
myStream.Write(Pgshop^, SizeOf(gshop_info));
end ;
myStream.Write(LastRecord[ 0 ], Length(LastRecord));
myStream.Write(Bottom[ 0 ], Length(Bottom));
myStream.SaveToFile( ' .\GoodsSale_Tw1.dat ' );
myStream.Free;
end ;
end ;
var
XMLDoc: TXMLDocument;
Node1: IXMLNode;
Node2: IXMLNode;
MyStream: TMemoryStream;
i: integer;
begin
if FileExists( ' .\GoodsSale_Tw.dat ' ) then begin
XMLDoc : = TXMLDocument.Create( nil );
XMLDoc.Active : = True;
XMLDoc.Version : = ' 1.0 ' ;
XMLDoc.Encoding : = ' GB2312 ' ;
XMLDoc.Options : = [doNodeAutoCreate, doNodeAutoIndent, doAttrNull, doAutoPrefix, doNamespaceDecl];
XMLDoc.DocumentElement : = XMLDoc.CreateNode( ' table ' );
myStream : = TMemoryStream.Create;
myStream.LoadFromFile( ' .\GoodsSale_Tw.dat ' );
Count : = (myStream.Size - 40 ) div 10 ;
// myStream.ReadBuffer(Head[ 0 ], 10 );
MyStream.Position : = 10 ;
for i : = 0 to Count - 1 do
begin
new(Pgshop);
MyStream.Read(Pgshop^, sizeof(gshop_info));
Node1 : = XMLDoc.DocumentElement;
Node2 : = Node1.AddChild( ' row ' );
if ((i + 1 ) mod 2 ) <> 0 then begin
Node2.SetAttributeNS( ' 大类 ' , '' , Pgshop^.a1 xor $ 72 );
Node2.SetAttributeNS( ' 位置 ' , '' , Pgshop^.a2 xor $ 67 );
Node2.SetAttributeNS( ' 物品ID ' , '' , Pgshop^.a3 xor $AA13);
Node2.SetAttributeNS( ' 折叠数量 ' , '' , Pgshop^.a5 xor $ 86 );
Node2.SetAttributeNS( ' 价格 ' , '' , Pgshop^.a6 xor $DFB0);
Node2.SetAttributeNS( ' 功能1 ' , '' , Pgshop^.a8 xor $C2);
Node2.SetAttributeNS( ' 功能2 ' , '' , Pgshop^.a9 xor $C8);
Node2.SetAttributeNS( ' 标识 ' , '' , Pgshop^.a10 xor $9D);
end else begin
Node2.SetAttributeNS( ' 大类 ' , '' , Pgshop^.a1 xor $4E);
Node2.SetAttributeNS( ' 位置 ' , '' , Pgshop^.a2 xor $B0);
Node2.SetAttributeNS( ' 物品ID ' , '' , Pgshop^.a3 xor $D103);
Node2.SetAttributeNS( ' 折叠数量 ' , '' , Pgshop^.a5 xor $BC);
Node2.SetAttributeNS( ' 价格 ' , '' , Pgshop^.a6 xor $ 8E05 );
Node2.SetAttributeNS( ' 功能1 ' , '' , Pgshop^.a8 xor $ 07 );
Node2.SetAttributeNS( ' 功能2 ' , '' , Pgshop^.a9 xor $ 92 );
Node2.SetAttributeNS( ' 标识 ' , '' , Pgshop^.a10 xor $ 80 );
end ;
end ;
// myStream.ReadBuffer(LastRecord, 10 );
// myStream.ReadBuffer(Bottom[ 0 ], 20 );
XMLDoc.SaveToFile( ' .\GoodsSale_Tw.xml ' );
XMLDoc.Free;
myStream.Free;
end ;
end ;
procedure TForm1.btnXml2DatClick(Sender: TObject);
var
XMLDoc: TXMLDocument;
Node, Node1: IXMLNode;
MyStream: TMemoryStream;
i, Count: integer;
begin
if FileExists( ' .\GoodsSale_Tw.xml ' ) then begin
XMLDoc : = TXMLDocument.Create(Application);
XMLDoc.LoadFromFile( ' .\GoodsSale_Tw.xml ' );
XMLDoc.Active : = True;
Node : = XMLDoc.DocumentElement;
Count : = Node.ChildNodes.Count;
myStream : = TMemoryStream.Create;
myStream.Write(Head[ 0 ], Length(Head));
for i : = 0 to Count - 1 do begin
Node1 : = XMLDoc.DocumentElement.ChildNodes[i];
new(Pgshop);
if ((i + 1 ) mod 2 ) <> 0 then begin
Pgshop^.a1 : = Byte(StrToInt(Node1.Attributes[ ' 大类 ' ])) xor $ 72 ;
Pgshop^.a2 : = Byte(StrToInt(Node1.Attributes[ ' 位置 ' ])) xor $ 67 ;
Pgshop^.a3 : = StrToInt(Node1.Attributes[ ' 物品ID ' ]) xor $AA13;
Pgshop^.a5 : = Byte(StrToInt(Node1.Attributes[ ' 折叠数量 ' ])) xor $ 86 ;
Pgshop^.a6 : = StrToInt(Node1.Attributes[ ' 价格 ' ]) xor $DFB0;
Pgshop^.a8 : = Byte(StrToInt(Node1.Attributes[ ' 功能1 ' ])) xor $C2;
Pgshop^.a9 : = Byte(StrToInt(Node1.Attributes[ ' 功能2 ' ])) xor $C8;
Pgshop^.a10 : = Byte(StrToInt(Node1.Attributes[ ' 标识 ' ])) xor $9D;
end else begin
Pgshop^.a1 : = Byte(StrToInt(Node1.Attributes[ ' 大类 ' ])) xor $4E;
Pgshop^.a2 : = Byte(StrToInt(Node1.Attributes[ ' 位置 ' ])) xor $B0;
Pgshop^.a3 : = StrToInt(Node1.Attributes[ ' 物品ID ' ]) xor $D103;
Pgshop^.a5 : = Byte(StrToInt(Node1.Attributes[ ' 折叠数量 ' ])) xor $BC;
Pgshop^.a6 : = StrToInt(Node1.Attributes[ ' 价格 ' ]) xor $ 8E05 ;
Pgshop^.a8 : = Byte(StrToInt(Node1.Attributes[ ' 功能1 ' ])) xor $ 07 ;
Pgshop^.a9 : = Byte(StrToInt(Node1.Attributes[ ' 功能2 ' ])) xor $ 92 ;
Pgshop^.a10 : = Byte(StrToInt(Node1.Attributes[ ' 标识 ' ])) xor $ 80 ;
end ;
myStream.Write(Pgshop^, SizeOf(gshop_info));
end ;
myStream.Write(LastRecord[ 0 ], Length(LastRecord));
myStream.Write(Bottom[ 0 ], Length(Bottom));
myStream.SaveToFile( ' .\GoodsSale_Tw1.dat ' );
myStream.Free;
end ;
end ;