I loose all my mails. But somebody ask why! about delimiter.
Oh YES, the use of different itemdelimiter is very important to handle data used within a stack as I suppose a C++ programmer would talk about "record".
Sevral delimiter can be used to for example for CAD value ";point x 1,point y 1; point x 2, point y 2;....;point x n, point y n" to store data of a polygone, or in an accounting program where you get all the data into a variable to processed them. Then you need to work with different delimiter.
The difficulties with today HC-delimiter is starting when you use a lot of small handler with dedicated tasks. For example in an application you would have handlers specialized to format text within a line or translate data in an other format. Then you may get here into trouble if you are not taking special care. The Itemdelimiter is not always the same by entering a handler. Then you have to script itemdelimiter independent, or you have to save delimiter, set the delimiter required in the handler and at the end reset the itemdelimiter to saved value.
A lot of redoundent scripting.
1) My preference is
------------------------
put item 3 del ":" of field id 21 into var
or
put item 3 delimiter ":" of field id 21 into var
This is clear scipting.
Why use "by"? It does not make any sens to me in a "put" sentence. "by" is used in sort commands and is well there.
2) Local delimiter
---------------------
Local delimiter would be very nice and very helpfull especially when you do a lot of data handling.
3) XCDN, Changedelimiter is an alternative
---------------------------------------------------
To write handler unsensible to the (global) delimiter I use very successfully this XCDM "changedelimiter()" or "Newdelimiter().
put line 3 of changedelimiter(var,";",return) into newvar
is
put item 3 del ":" of var into newvar
4) Multiple delimiter
-----------------------
following is too combersome:
put item 3 del (":", ";")
or
put item 3 del (":" and ";")
or
put item 3 del (":"or ";")
and
put item 3 del ":" to item 4 del ";" -- does not make sens.
(it could become reverse writting)
this is a well structured way, but...
changedelimiter ( line 2 of changedelimiter (var,":",return),";",return) into Newvar
I would not support the idea of multiple delimiter, because this is to leave scripting simplicity.
5) Composite delimiter
----------------------------
Compusite delimiter could be an other enhancement, which do not require new commands:
set the itemdelimiter to ":a"
even
set the itemdelimiter to ":ayzudhakd"
Just an improvment with lot of power.
6) Linedelimiter
------------------
A line delimiter would add some more feature for listing.
7) Translate
---------------
I would also like to have available a translate function, which permute
tables, it is rows become columns and columns become rows, rows being defined by lines and columns by the current itemdelimiter. I know you can use repeat loop, but with a lot of data this is very slow.
Jean-Jacques Wagner
