Skip to main content

d3 all versions.

To my knowledge, this has been around forever; but it has always been something I thought was totally inconsistent:

File A and File B are related to each other.

An attribute on File B is a mv.

From File A I wish to use a dictionary item that returns that File B attribute; and so use a t-correlative such as:

T(FILEB;X;;n)

where n is the integer amc number of the attribute on File B I want.

This works perfectly if n is single valued; but if n is multi-valued the result is all the values delimited by a <space>; not returned as a mv.

Why? It strikes me this is entirely inconsistent with mv principles.

Now, with that said; is there a way around this in a dictionary item [apart from doing a call subroutine] using F or A type syntax?

Cheers,



------------------------------
David Knight
Senior Software Engineer
H3O Business Technologies Limited
------------------------------

d3 all versions.

To my knowledge, this has been around forever; but it has always been something I thought was totally inconsistent:

File A and File B are related to each other.

An attribute on File B is a mv.

From File A I wish to use a dictionary item that returns that File B attribute; and so use a t-correlative such as:

T(FILEB;X;;n)

where n is the integer amc number of the attribute on File B I want.

This works perfectly if n is single valued; but if n is multi-valued the result is all the values delimited by a <space>; not returned as a mv.

Why? It strikes me this is entirely inconsistent with mv principles.

Now, with that said; is there a way around this in a dictionary item [apart from doing a call subroutine] using F or A type syntax?

Cheers,



------------------------------
David Knight
Senior Software Engineer
H3O Business Technologies Limited
------------------------------

yes you are correct 
since ever its return an SPACE
i usually use the swaps to fix that when its BASIC program
but as chatgpt just told me you can use this
T(FILEB;X;;n]MV) ( not tested)

and just to complemnty you can also do
FILEB;X1;;n
where X# ( # is the position you liked to retrive)




------------------------------
Alberto Leal
System Analyst
Millano Distribuidora de Auto Pecas Ltda
Varzea Grande MT BR
------------------------------

yes you are correct 
since ever its return an SPACE
i usually use the swaps to fix that when its BASIC program
but as chatgpt just told me you can use this
T(FILEB;X;;n]MV) ( not tested)

and just to complemnty you can also do
FILEB;X1;;n
where X# ( # is the position you liked to retrive)




------------------------------
Alberto Leal
System Analyst
Millano Distribuidora de Auto Pecas Ltda
Varzea Grande MT BR
------------------------------

Hi Alberto,

Thank you. Yes, it has been around forever. Indeed the manual even states it for the syntax:



t{dict}file.reference;subcode{[vc[,svc]|*]};inac;outac{;breakac}

In respect of vc it says: "If the value count is not specified, all the MultiValues in the attribute are returned, concatenated with spaces." I just find it strange it does so, given the whole nature of a mv system.

As for ChatGPT's suggestion; unless I am misunderstanding what it means; ChatGPT thinks there is a 'processing code' called "MV" which would take the results of the T-conversion and somehow turn it magically into a mv! I am not aware of any such conversion code! Certainly not in d3. Perhaps it is hallucinating? Or other flavours of mv may allow that?

Lastly, yes I know if I want a specific known mv I can get that by using the vc syntax mentioned above.

I wonder if Rocket would look some extra syntax to retain backward-compatibility yet allow for a mv to be returned as a mv??



------------------------------
David Knight
Senior Software Engineer
H3O Business Technologies Limited
------------------------------