pkXML
 
Historia zmian
		    
2020.07.15
 - poprawiony blad podczas zpaisu bytestream gdy nie bylo danych (count=0)


2019.05.23
 - poprawiony syf w pliku po konwersji strony kodowej (czytał kawałek XMLa a potem go nie czyścił)


2018.11.24
 - poprawki zwiazane z konwersjÄ… strony kodowej przy odczycie


2015.04.06
 - dodane TpkXMLNode.Exchange


2015.01.02
 - wywalone porównania do AnsiChar (miał problemy z czytaniem rosyjskich liter)


2014.09.01
 - odczytuje BOOL także jako 1 lub 0


2014.08.19
 - prawidłowo zamyka Node jeśli tak zamykający jest pusty ""


2014.01.28
 - dodane TpkXML.InfoNode



2013.08.24
 - dodana mo¿lowo¶æ parsowania tylko pierwszego Node (np ¿eby sprawdziæ czy format pliku jest prawid³owy)
 - dodane:
   function TpkXML.LoadInfoFromFile(FileName: String): TpkXMLNode;
   function TpkXML.LoadInfoFromStream(AStream : TStream): TpkXMLNode;
   function TpkXML.LoadInfoFromString(AString: String): TpkXMLNode;


2013.06.29
 - poprawiony problem z zapisem unicode w SaveToString


2013.05.22
 - ForceDirectories zamkniête w try..except


2013.05.11
 - w warto¶ciach Attr i Node Integer zamienione na Int64


2013.04.21
 - obs³uga Node bez nazwy (<>zawarto¶æ)


2013.04.09
 - tworzenie katalogu przy zapisie do pliku


2013.03.30
 - poprawione czytanie kodowanych znaków z warto¶ci w Attr


2013.03.27
 - dodana kompatybilno¶æ ze starszymi Delphi (7)

2012.11.04
 - dodawanie znaków KodujZnSpec/DeKodujZnSpec przesuniête do zadawania Value w Attr i w Node
 - dodany podzia³ na ValueRAW (czytany/zapisywany z/do pliku) oraz stare Value (string, po dekodowaniu znaków)
 - dodane opcje buforowanego zapisywania/czytania do/z pliku (SaveToFile_Buffered/LoadFromFile_Buffered)
 (mo¿liwy ogólny wzrost wydajno¶ci przy du¿ej ilo¶ci danych: ~450%)


2012.10.29
 - je¶li AddInfoNode=true to dodaje tak¿e informacje o kodowaniu


2012.10.22
 - w NodeByName, FindIndex domyslnie NIE sprawdza typu Node przy szukaniu (parametr CheckNodeType)
 - rozbudowane BuildConfig ¿eby siê da³o siê przez XMLa nastawy zmieniaæ

2012.10.17
 - dodano TpkXMLNode.MoveToIndex - do przesuwania childów pod wskazany index
 - NodeByName - uwzglêdnia TYP node przy szukaniu
 - FindIndex - uwzglêdnia TYP node przy szukaniu
 - dodano FindNode(TpkXMLNode)
 - TpkXMLBuildConfig.AddInfoNode - (domy¶lnie true) - dodane informacje o parserze do pliku

2012.09.02
 - konfiguracja budowania XMLa wyrzucona do rekordu
 - mo¿liwo¶æ dodawania do XMLa samych Nodów (TpkXMLNode.SaveToStream)
 - mo¿liwo¶æ parsowania du¿ego XMLa - procedura anonimowa uruchamiana po ka¿dym Node
   z mo¿liwo¶ci± usuniêcia Node oraz przerwania parsowania

2011.11.15
 - dodana obs³uga atrybutów bez warto¶ci, oraz atrybutów bez nazwy
 - warto¶æi atrybutów mog± byæ ograniczone znakami " lub '
 - tagi specjalne mog± siê koñczyæ tylko samym '>'
 - je¶li przy wieli dzieciach Node ma warto¶ci pomiêdzy tagami (a nie w 1 miejscu)
   to warto¶ci s± sumowane w Value
 - tag zaczynaj±cy siê od znaku "!" jest tagiem specjalnym, chyba ¿e jest to "!--"
 - kodowanie/dekodowanie znacznika "'"

2011.11.09
 - poprawiona kompatybilno¶æ z nieunikodowymi Delphi

2011.11.06
 - uporz±dowana kwestia stringów (UnicodeString dla unikodowych Delphi, WideString dla reszty)
 - ujednolicone stringi i procedury które na nich dzia³aj±
 - zapis/odczyt ca³ych obiektów (TpkXMLNode.WriteObject/ReadObject)
 - dodana klasa TpkXMLStorageObject, która przy Write/ReadObject daje procedury
   SaveTo/ReadFromXMLNode


2011.10.24
 - SettingsForSmallOutput w konstruktorze; gdy true ustawia wszystkie parametry
   generowania XMLa tak, ¿eby plik wyj¶ciowy by³ mo¿liwie ma³y


2011.10.12
 - Node.Clear czy¶ci tak¿e atrybuty


2011.09.28
 - kodowanie znaków o kodach 1..31 ¿eby ich nie ucinaæ podczas zapisu


2011.05.14
 - dodana metoda NodeByPath (pobranie Node po ¶cie¿ce, np: NodeByPath('Test1\Test2\Test3')


2011.02.20
 - poprawiony b³±d z niechcian± konwersj± znaków przez Trim()
   (podziêkowania dla WS za znalezienie b³êdu)


2011.02.04
 - dodane Append ustawiaj±ce Value (dla Node i Attr)


2011.02.02
 - przy zapisywaniu CData zamieniam tekst '[CDATA[' na '_CDATA_' i ']]>' na '__>' ¿eby dzia³a³ odczyt


2011.01.27
 - parametr ForceUnicodeWithoutID w Parse
 - parametr BuildWithoutUnicodeID w Build
 - SaveToString/LoadFromString


2011.01.03
 - dodany odczyt/zapis danych binarnych
 - w node i attr dodane ValueDf
 - poprawione dzia³anie AttrValueDf i NodeValueDf


2010.12.01
 - dodane NodeValueDf i AttrValueDf
 - w Delphi>=XE zapisuje domy¶lnie jako unikod


2010.06.15
 - dodane w³a¶ciwo¶ci domy¶lne dla Node i Attr


2009.10.05
 - poprawiony b³±d z separatorem dziesiêtnym przy zamianie tekstu na liczbê zmiennoprzecinkow±


2009.07.31
 - dodana w³a¶ciwo¶c AllowNoEndTag (przy parsowaniu akceptuje elementy bez tagów koñcowych)

 
2009.03.03
 - dodana w³a¶ciwo¶æ TrimData (obcinanie pustych znaków przy parsowaniu pliku)
 

2008.12.04
 - dodana w³asciwo¶c NewLineStr (ustawianie tekstu dla koñca linii)


2008.11.28
 - dodane:
   TpkXMLAttrs.Append - dodaje atrybut nie sprawdzaj±c czy taki ju¿ jest
   TpkXMLNode.Append  - dodaje node nie sprawdzaj±c czy takie ju¿ jest


2008.10.03
 - w LoadFromStream czyta do bufora tylko Size-Position a nie ca³o¶æ
 - dzmpilacja warunkowa zapewnia dzia³anie w D starszych od 2005


2008.03.19
 - UseShortNode (czy zapisywaæ puste node w krótkim formacie)
 - znacznie przyspieszony odczyt i zapis plików


2008.01.09
 - SaveEmptyAttr (zapisz atrybut gdy jest pusty; domy¶lnie: false)
 - SaveEmptyNode (zapisz node nawet gdy jest puste; domy¶lnie: false)


2008.01.07
 - dodana metoda DeleteByName i FindIndex w Node i Attr
 - poprawione zwlanianie pamiêci przy usuwaniu elementów
 - NodeByName mo¿e od razu ustawiaæ NodeTyp przy tworzeniu nowej pozycji
 - TpkXMLNode.Clear czy¶ci tak¿e warto¶æ Node
 - poprawiono czytanie CDATA jesli by³y inne podklucze
 - poprawione formatowanie zapisywanych danych gdy jest CDATA


2007.12.31
 - dodana mo¿liwo¶æ zapisania/odczytania warto¶ci Value dla Node i Attr
   dla typów Integer, Extended oraz Boolean
   (ValueInt, ValueExt, ValueBool)


2007.11.30
 - zmiana na funkcje: NodeByName, NodeByIndex, AttrByName, AttByIndex
   teraz NodeByName i AttrByName domy¶lnie tworz± brakuj±ce pozycje
   i nie ma potrzeby podwania drugiego parametru
 - dodana funkcja NodeByAttr


2007.11.29
 - dodana obs³uga CData
 - poprawiony zapis znaków steruj±cych (<, >, ") w warto¶ciach tagów i atrybutów


2007.11.24
 - pierwsza wersja

		
Copyright 2009-2013 Paweł Konarski