Giter Club home page Giter Club logo

treestructinfo's People

Contributors

furious-programming avatar spartanpage avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

spartanpage

treestructinfo's Issues

Change the names of token objects

Change the names of token objects:

  • TTSInfoChildNodeToken to TTSInfoNodeIterator,
  • TTSInfoAttributeToken to TTSInfoAttributeIterator.

Old names use to declare aliases with deprecated modifier.

Add new constant sets of chars

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

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:

  • new methods - SwitchTreeForm and SwitchTreeAccess,
  • changed visibility of fields FReadOnly and FModified,
  • changed visibility of methods FindElement, FindAttribute and FindNode.

SwitchTreeForm and SwitchTreeAccess

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).

ValueToDateTime has a problem with the date separator

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.

Rename AAttrName parameter

Change the name of the parameter AAttrName, wherever this parameter can take the path or the name of attribute.

Wrong link declaration

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.

Add "Options" property

Add Options property to the TTSInfoTree class, that will allow to:

  • serialize tree to text output, without indentation (default: with indentation),
  • serialize tree to text output, with attributes values aligned (default: not aligned).

Remove links

Remove everything that relates to links to include files. Links are no longer supported due to high complexity and reduce operating safety.

TreeStructInfo 2.0

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

Remove the data stream size limit for methods:

  • WriteBuffer and ReadBuffer,
  • WriteStream and ReadStream.

After all, update the specification.

Rename final classes

Rename TSimpleTSInfoTree to TTSInfoTree and current TTSInfoTree to TTSInfoTreeEx.

Declare type TSimpleTSInfoTree and mark it as deprecated.

Porting library

Adapt the code for the FPC 3.0.0 and a new engine for Unicode.

External files linking

Combine the path of the linking file with the path of the linked file, instead of using CurrentDir.

Add and modify default values

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

Add Empty property to TSimpleTSInfoTree class.

Must return True if the tree has no attributes and child nodes, otherwise False.

Overload "in" operator

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.