dat merge using multiple samples! pretty important

I think this RFE is now quite important, because of the major restructuring of DAT export methodology:

what was
myop/mychan

is now
myopmychan

causing a LOT of extra nodes to be added just to - for example - column replace an exported cell with a user supplied one:

As an example of what I often, very often find my self dealing with (occasionally before, lots of times since adopting the new export format - hence my plea for this RFE):

inside a master, I have a COLORS DAT representing possible colors:

font on 1 1 1 1
font off 0 0 0 0
bg on 0 0 0 0
bg off 1 1 1 1

next to it, I have an IN DAT which represents user overrides:

then a MERGE with COLORS and IN - with IN column replacing COLORS (appending unmatched in other cases where the override is allowing the user to add his/her own exports to parms inside a master).

Actually the above example is not quite representative of the multitude of times when I’m dealing with parameters that need to be exported, but it’s a case I just run into (so no directly related to the change in export format, but a good example for my RFE nonetheless).

so to override one of the above I would connect a DAT to the IN:
font off .5 .5 .5 .5

the problem is replacing the right row, right? Of course it can be done joining/merging/resplitting the columns (so that font_off for example can be properly found then resplit into fontoff), but it’s a great pain, a waste of cycles and memory when duplicated hundreds of times.

How about a merge that uses a start and end index and internally merges/splits the cells?

ie. replace columns start_column=0 end_column=1

would work just fine!!!
how about it? Or… is there a way just as efficient to do it?

btw I just implemented the poorman’s version of what I’m asking for (merging based on two columns) and it took 25 DATS!!!

Hey Dani, please send an example of this, your input tables and desired output. We are having trouble understanding the challenge you are facing.

here’s exactly what I’m talking about

I have a table with something like
fonton1
fontrollover1
bgrollover1

and need to merge it with a table like
fontrollover2

basically I need a replace columns based on matching font AND rollover

see attachment example (with 25 dats…)
base1.tox (2.16 KB)

Actually I just noticed there’s a bug in that comp, but you’ll get the idea of what I’m trying to do hopefully.

if I understood you correctly, then here’s a version with 13 nodes. I’m sure that it can be reduced to 8 nodes or so with more time for development. replace.toe (5.32 KB)
What I usually do for these cases is change my input format (col0 + col1 in your case) to be just one column using a syntax like
font:rollover…
then you can easily merge replace like you want it. In the end just use a convert DAT and split columns at ‘:’
Basically what I did in the example, but just designed like that from the ground up

but I agree, using replacing by multiple columns would be a nice addition

thanks I’ll check it out!

And yes, I never really thought about this RFE until I started implementing the scattered new method for exporting from DAT’s. Before it was

path/op/parmvalue

so it was easy to to replacements.

So changing the format back to the above means I have to resplit the DAT again to reformat it to the proper new export format - which I very much dislike because it’s now more for folks who set those parms by hand than for programmers (because there’s no easy “handle” such as /path/op/parm for a network to look at what is actually inside an export dat, or to replace rows etc.).

more than number of dats and memory I worry about cpu cycles.

d

Hey Dani,

3 dats with your old formating converted into the new format via a Convert DAT splitting cells at “/”

Otherwise have a look at how we deal with these things in TUIK (for example buttonmomentary/button), I find it a very clean approach to deal with different panel states.

cheers
Markus
base1.tox (926 Bytes)

If you use any path names in these DATs than just replace the “/” with something like %

cheers
Markus