Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Index: ceguicomponents.pas
- ===================================================================
- --- ceguicomponents.pas (wersja 1551)
- +++ ceguicomponents.pas (kopia robocza)
- @@ -10,7 +10,7 @@
- uses
- zstream, Classes, SysUtils, Controls, forms,ComCtrls, StdCtrls, ExtCtrls, Buttons, lcltype,
- dialogs, JvDesignSurface, DOM, typinfo, LResources, JvDesignImp, JvDesignUtils,
- - graphics, math, xmlread,xmlwrite, WSStdCtrls;
- + graphics, math, xmlread,xmlwrite, WSStdCtrls, CustomBase85;
- type TCETreeview=class(TCustomTreeview)
- property Align;
- @@ -1275,15 +1275,18 @@
- - getmem(outputastext, m.size*2+1);
- - BinToHex(pchar(m.Memory), outputastext, m.Size);
- + //getmem(outputastext, m.size*2+1);
- + //BinToHex(pchar(m.Memory), outputastext, m.Size);
- - outputastext[m.size*2]:=#0; //add a 0 terminator
- + //outputastext[m.size*2]:=#0; //add a 0 terminator
- + getmem(outputastext, (m.size div 4) * 5 + 5 );
- + BinToBase85(pchar(m.Memory),outputastext,m.Size);
- +
- m.free;
- - Node.AppendChild(doc.CreateElement(name)).TextContent:=outputastext;
- + Node.AppendChild(doc.CreateElement(name)).TextContent:='BASE85'+outputastext;
- finally
- if outputastext<>nil then
- freemem(outputastext);
- @@ -1314,10 +1317,23 @@
- s:=node.TextContent;
- - size:=length(s) div 2;
- + if copy(s,1,6)='BASE85' then
- + begin
- + size:=length(s) - 6; // skip header
- + if (size mod 5) > 1 then
- + size:= (size div 5) * 4 + (size mod 5) - 1
- + else
- + size:= (size div 5) * 4;
- + end
- + else // old method
- + size:=length(s) div 2;
- +
- getmem(b, size);
- try
- - HexToBin(pchar(s), b, size);
- + if copy(s,1,6)='BASE85' then
- + Base85ToBin(pchar(s)+6, b) // remember to skip header - pchar(s)+6 instead of pchar(s)
- + else // old method
- + HexToBin(pchar(s), b, size);
- m:=tmemorystream.create;
- m.WriteBuffer(b^, size);
- Index: luafile.pas
- ===================================================================
- --- luafile.pas (wersja 1551)
- +++ luafile.pas (kopia robocza)
- @@ -5,7 +5,7 @@
- interface
- uses
- - Classes, SysUtils, DOM, zstream, math;
- + Classes, SysUtils, DOM, zstream, math, CustomBase85;
- type TLuafile=class
- private
- @@ -36,12 +36,25 @@
- s:=node.TextContent;
- - size:=length(s) div 2;
- + if copy(s,1,6)='BASE85' then
- + begin
- + size:=length(s) - 6; // skip header
- + if (size mod 5) > 1 then
- + size:= (size div 5) * 4 + (size mod 5) - 1
- + else
- + size:= (size div 5) * 4;
- + end
- + else // old method
- + size:=length(s) div 2;
- +
- maxsize:=max(65536,size); //64KB or the required size if that's bigger
- getmem(b, maxsize);
- try
- - HexToBin(pchar(s), b, size);
- + if copy(s,1,6)='BASE85' then
- + Base85ToBin(pchar(s)+6, b) // remember to skip header - pchar(s)+6 instead of pchar(s)
- + else // old method
- + HexToBin(pchar(s), b, size);
- m:=tmemorystream.create;
- m.WriteBuffer(b^, size);
- @@ -74,14 +87,16 @@
- c.write(filedata.Memory^, filedata.size);
- c.free;
- - //convert the compressed file to a hexstring
- - getmem(outputastext, m.size*2+1);
- + //convert the compressed file to a BASE85 (before hexstring)
- + //getmem(outputastext, m.size*2+1);
- + getmem(outputastext, (m.size div 4) * 5 + 5 );
- try
- - BinToHex(pchar(m.Memory), outputastext, m.Size);
- + //BinToHex(pchar(m.Memory), outputastext, m.Size);
- + BinToBase85(pchar(m.Memory), outputastext, m.Size);
- - outputastext[m.size*2]:=#0; //add a 0 terminator
- + //outputastext[m.size*2]:=#0; //add a 0 terminator
- doc:=node.OwnerDocument;
- - Node.AppendChild(doc.CreateElement(name)).TextContent:=outputastext;
- + Node.AppendChild(doc.CreateElement(name)).TextContent:='BASE85'+outputastext;
- finally
- freemem(outputastext);
Advertisement
Add Comment
Please, Sign In to add comment