furious-programming / treestructinfo Goto Github PK
View Code? Open in Web Editor NEWAPI to handle the TreeStructInfo configuration files.
License: Other
API to handle the TreeStructInfo configuration files.
License: Other
Remove unnecessary procedures and functions from TSInfoUtils
unit:
SameIdentifiers
RemoveWhitespaceChars
Add methods ReadBufferSize
and ReadStreamSize
for read the size of buffer or stream, stored in attribute value.
Change the names of token objects:
TTSInfoChildNodeToken
to TTSInfoNodeIterator
,TTSInfoAttributeToken
to TTSInfoAttributeIterator
.Old names use to declare aliases with deprecated
modifier.
Add to TSInfoConsts.pp some sets of chars for use in the TSInfoUtils.pp unit:
'a' .. 'z' - small letters
'A' .. 'Z' - capital letters
'0' .. '9' - number characters
'A' .. 'F' - hexadecimal letters
Update API documentation on the project website, after the release of a new version (2.0 beta 4) of the library. Changes in class TSimpleTSInfoTree
:
SwitchTreeForm
and SwitchTreeAccess
,FReadOnly
and FModified
,FindElement
, FindAttribute
and FindNode
.Add two methods to the TSimpleTSInfoTree
class:
SwitchTreeForm
- for changing the form of loaded tree (text to binary and binary to text),SwitchTreeAccess
- for changing the access to the tree (access read to access write and vice versa).If the date is for example 04-10-2020
, and the system has the date separator set as /
(so the attribute value is 04/10/2020
), the TTSInfoDataConverter.ValueToDateTime
method will not be able to correctly convert the string and will return the default value (from ADefault
parameter).
This causes that loading the tree and saving it again will fuck up all dates in the whole tree (they will all be reset to the default values given in the TSimpleTSInfoTree.ReadDateTime
method calls). The problem is very serious.
Change the name of the parameter AAttrName
, wherever this parameter can take the path or the name of attribute.
Change Modified
property to read and write.
This will also allow to manage when the tree is to be saved to a file.
SameIdentifiers
function is not needed - remove it.
If the link does not contain tmBinaryTree
or tmAccessWrite
mode, writer class generates a bad link declaration, making it impossible to reload the file.
Condition in AddLink
method has been improved and now everything is fine.
Replace pointers with indexes, and CompareStr (or other weird things) with equal operator. Keep it simply, stupid...
Add Options
property to the TTSInfoTree
class, that will allow to:
Remove everything that relates to links to include files. Links are no longer supported due to high complexity and reduce operating safety.
It's a good idea to create separated develop-branch for new version :) There are people who wants to see progress of yours before the production phase
Remove the data stream size limit for methods:
WriteBuffer
and ReadBuffer
,WriteStream
and ReadStream
.After all, update the specification.
Rename TSimpleTSInfoTree
to TTSInfoTree
and current TTSInfoTree
to TTSInfoTreeEx
.
Declare type TSimpleTSInfoTree
and mark it as deprecated.
Add some useful helpers to TSInfoUtils
unit (think about what will be needed).
It must be possible to use user-defined character escaping routines.
Create a new enumeration type TFormatStream
(like TFormatBuffer
) for metod WriteStream
.
Change the suffix File
to Tree
in type TExportFormat
.
Adapt the code for the FPC 3.0.0 and a new engine for Unicode.
Use String and Char types insead of UTF8String, UTF8Char etc.
Combine the path of the linking file with the path of the linked file, instead of using CurrentDir.
Add the default values, where can add and edit existing default values, if need to change (default node paths is TTSInfoTree
class).
Add Empty
property to TSimpleTSInfoTree
class.
Must return True
if the tree has no attributes and child nodes, otherwise False
.
Change the content of the README.md
file โ describe the library, not the format functionality.
Overload in
operator for TTSInfoNodeIterator
and TTSInfoTree
and let iterate through sub-elements with its help (use enumerators). For something like this:
var
Tree: TTSInfoTree;
Attr: TTSInfoAttributeIterator;
begin
for Attr in Tree do
// main instructions
and this:
var
Tree: TTSInfoTree;
var
Node: TTSInfoNodeIterator;
Attr: TTSInfoAttributeIterator;
begin
for Node in Tree do
for Attr in Node do
// main instructions
Think about temporarily opening nodes during iteration.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.