• xml操作


    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;
  • 相关阅读:
    职业的选择
    事务的隔离性理解
    浅谈CSS和JQuery实现鼠标悬浮图片放大效果
    jvm 类加载器
    jvm 类加载
    Spring 启动 Bean加载流程
    优雅的博客园客户端发布Forms版啦。
    Xamarin Forms中WebView的自适应高度
    2017回顾与2018目标
    优雅的博客园Android客户端
  • 原文地址:https://www.cnblogs.com/china1/p/3395154.html
Copyright © 2020-2023  润新知