🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: borland.public.delphi.database
Article #170

Client Dataset XML Blob String Encode Decode String Text Field Mystery; Please Help

#170
From: J
Date: Wed, 31 Oct 2007 21:49
103 lines
6734 bytes
I was given an xml file that was created by an application written in Delphi 
(source not available.)

 Here is a portion of the xml file:



<?xml version="1.0" standalone="yes"?>
<DATAPACKET Version="2.0">
 <METADATA>
  <FIELDS>
   <FIELD attrname="BRANCHID" fieldtype="r8"/>
   <FIELD attrname="ELEMTYPE" fieldtype="string" WIDTH="50"/>
   <FIELD attrname="ELEMIDX" fieldtype="r8"/>
   <FIELD attrname="ISIMPORT" fieldtype="string" SUBTYPE="FixedChar" 
WIDTH="1"/>
   <FIELD attrname="DESCRIPTION" fieldtype="string" WIDTH="100"/>
   <FIELD attrname="MODIFIER" fieldtype="string" WIDTH="40"/>
   <FIELD attrname="SCRIPT" fieldtype="bin.hex" SUBTYPE="Binary" WIDTH="1"/>
   <FIELD attrname="LASTMOD" fieldtype="dateTime"/>
   <FIELD attrname="ESCOWNED" fieldtype="string" SUBTYPE="FixedChar" 
WIDTH="1"/>
  </FIELDS>
  <PARAMS LCID="1033"/>
 </METADATA>
  <PARAMS LCID="1033"/>
 </METADATA>
 <ROWDATA>
 </ROWDATA>
 <BLOBDATA>
  <BPARM COMP="0" SPECCODE="2"/>
  <ROW BRANCHID="0" ELEMTYPE="D_ScheduledTotalPayment" ELEMIDX="1" 
ISIMPORT="N" DESCRIPTION="Scheduled Total Payment" MODIFIER="MOHAN" 
SCRIPT="50726F63656475726520445F5363686564756C6564546F74616C5061796D656E745F4E5F313B0D0A5661720D0A20202069203A20496E74656765720D0A202020656E64203A20496E74656765720D0A202020706D7441203A20537472696E670D0A656E645661720D0A0D0A2020202020656E64203A3D20454C454D532832313339290D0A2020202020466F722069203A3D203120746F20656E640D0A2020202020202020706D7441203A3D20225363686564756C6564546F74616C5061796D656E742E22202B20494E54544F5354522869290D0A2020202020202020786D6C4E657753747228322C20332C20706D74412C2027272C2054525545290D0A2020202020202020786D6C4E657741747453747228332C20274454272C2053545228406462323133395B695D2C202223232C2323232C2323232E232322292C2054525545290D0A2020202020656E64466F720D0A0D0A456E6450726F633B0D0A" 
LASTMOD="20030502T08:16:00000"/>
  <ROW BRANCHID="0" ELEMTYPE="D_ScheduledPaymentDate" ELEMIDX="1" 
ISIMPORT="N" DESCRIPTION="Scheduled Payment Date" MODIFIER="LOCKE" 
SCRIPT="6D8F4F6BC24010C5EF817C878797445C8AD19E94400B8920B46970572F52429A1D6CC0ECCA32F6CFB72FBB854A5BE736F3DE6FE64DED6C47FAEC084523BB57D2E723E9BAFD1CC870D1323555932DE3E8AD757104A0C7026BC374A0EF9E8CFE33390D5C6001C9AE37873822A3779E0D5AA880E4281FCA4799CEB2DBE9F8A2ADACF327726460EB9D17E967758ED1B5A037234CB0AE947A926A93F6E35FE4C770ACE85DB24B670273113609248980DA6CCB6BDE7B666F9F0B24854A04EEF48BCFBAEF9FFF3164F4CA86174BA36B67BB651C7D01" 
LASTMOD="20030502T08:16:00000"/>
 </BLOBDATA>
 <TABLENAME>XMLPED</TABLENAME>
</DATAPACKET>



In particular it is the values for the SCRIPT element that I am having 
difficulty with. I was able to recognize that it was some kind of encoding; 
After a lot of trial and error, it turned out to be base 2. After decoding 
it here is what it looks like:



Original Data (w/ line breaks inserted)                          Decoded 
Data (w/ line breaks inserted)
---------------------------------------------------------             -----------------------------------------------------------
50726F63656475726520445F53636865647          Procedure 
D_ScheduledTotalPayment_N_1;
56C6564546F74616C5061796D656E745F4E          Var
5F313B0D0A5661720D0A20202069203A204         I  : Integer 
96E74656765720D0A202020656E64203A20          end : Integer
496E74656765720D0A202020706D7441203          pmtA : String
A20537472696E670D0A656E645661720D0A         endVar
0D0A2020202020656E64203A3D20454C454
D532832313339290D0A2020202020466F72          end := ELEMS(2139)
2069203A3D203120746F20656E640D0A202         For i := 1 to end
0202020202020706D7441203A3D20225363          pmtA := 
"ScheduledTotalPayment."+INTTOSTR(i)
686564756C6564546F74616C5061796D656           xmlNewStr(2, 3, pmtA, '', 
TRUE)
E742E22202B20494E54544F535452286929            xmlNewAttStr(3, 'DT', 
STR(@db2139[i], 0D0A2020202020202020786D6C4E6577537 
"##,###,###.##"), TRUE)  endFor
47228322C20332C20706D74412C2027272C
2054525545290D0A2020202020202020786           EndProc;
D6C4E657741747453747228332C20274454
272C2053545228406462323133395B695D2
C202223232C2323232C2323232E23232229
2C2054525545290D0A2020202020656E644
66F720D0A0D0A456E6450726F633B0D0A



6D8F4F6BC24010C5EF817C878797445C8AD           m�Ok�@ ��|??-D\S�z"@
19E94400B8920B46970572F52429A1D6CC0            ? �ipW/RBs l���2�Ϸ
ECCA32F6CFB72FBB854A5BE736F3DE6FE64          /".J[�6��o�M�l
DED6C47FAEC084523BB57D2E723E9BAFD1C        G�� E#"W��#�� �p�25U"-��uq
C870D1323555932DE3E8AD757104A0C7026          � k�t �zO�39
BC374A0EF9E8CFE33390D5C6001C9AE3787           \` ɮ7?8"�wz
3822A3779E0D5AA880E4281FCA4799CEB2D         Z�?�(-�GT���
BE9F8A2ADACF327726460EB9D17E967758E          'rd`� �guZѵ
D1B5A037234CB0AE947A926A93F6E35FE4C          7#L��"z'j"��_��p�]
770ACE85DB24B670273113609248980DA6C          �Kg s 6   $??�l�k�
CB6BDE7B666F9F0B24854A04EEF48BCFBAE          {foY$.J ��<Ϻ�Y�1d��? K�kg"e }
F9FFF3164F4CA86174BA36B67BB651C7D01



I had no problem with records like the first one, however there are many 
like the second one. It seems to be some type of compressed string, but I am 
not sure how to decompress or unzip it. I also suspect that it was created 
with a client dataset with an ADO or Interbase database on the server side.

So, anyone got any suggestions on how I can get decode this?
Technical Details
Message-ID: <jcKdnXQFj6DJZbXanZ2dnUVZ_gadnZ2d@giganews.com>
Path: arc1-ca.pugleaf.net!g2news2.google.com!news2.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!local01.nntp.dca.giganews.com!news.giganews.com.POSTED!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Thread: 115d96,addb60a85b04f116,start
X-Google-Attributes: gid115d96,public,usenet
X-Google-Language: ENGLISH,ASCII
Path: arc1-ca.pugleaf.net!g2news2.google.com!news2.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!local01.nntp.dca.giganews.com!news.giganews.com.POSTED!not-for-mail
NNTP-Posting-Date: Wed, 31 Oct 2007 16:49:08 -0500
From: "J" <n/a>
Newsgroups: borland.public.delphi.database
Subject: Client Dataset XML Blob String Encode Decode String Text Field Mystery; Please Help
Date: Wed, 31 Oct 2007 16:49:09 -0500
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.3138
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3198
X-RFC2646: Format=Flowed; Original
Message-ID: <jcKdnXQFj6DJZbXanZ2dnUVZ_gadnZ2d@giganews.com>
Lines: 105
X-Usenet-Provider: http://www.giganews.com
X-Trace: sv3-VKgM6xvNvuKhpnrdPFJ9P+QyNvTnOLPZD4ucj1ERYxS1CWp5C9o8wslJO7fgz/W0Ae879ojf3tt1pUb!loNXM/EboWC/Kmv/0QaklC8hz42ahHwKrcbzWwpiRM6kKZCl+FNWONmxI+CdZyiPBzEQRlAaGQ==
X-Complaints-To: abuse@giganews.com
X-DMCA-Notifications: http://www.giganews.com/info/dmca.html
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.35