Is it possible to split the content of a Alternative Data stream and populate it into custom columns?

Discussion related to "Everything" 1.5 Alpha.
Post Reply
Ralf_Reddings
Posts: 120
Joined: Fri Mar 24, 2023 4:53 pm

Is it possible to split the content of a Alternative Data stream and populate it into custom columns?

Post by Ralf_Reddings »

Is it possible to split the content of a Alternative Data stream and populate it into custom columns and have this association applied at all times not just when a search/filter is active?

I found a similar question but on experimenting with the solution proposed by void, the operation is only being applied while the search is active.

I know its currently possible to associate the value of a alternative data stream to a custom column:

Code: Select all

property_alternate_data_stream_ansi=Custom Property 0=foo;Custom Property 1=bar
custom_property_0=foo
custom_property_1=bar
Making these custom columns act like they are native windows properties (within Everything), being able to search, sort, reference them in real time just like any other column, of course if the ADS is indexed.

I am stuck in a case where I am dealing with a stream designed for another programme's custom columns. All column data is written to a single stream, each columns value is written to a single line of the steam:

Code: Select all

Tag000:<Column "x" value>
Tag001:<Column "y" value>
Tag002:<Column "z" value>
I would like to extract the values found within
<...>
and assign them to custom columns and simply name these custom columns what they are called elsewhere. I really need this feature to synchronise Everything with a few programmes that make use of ADS streams in this manner.


Any help would be greatly appreciated!
void
Developer
Posts: 16698
Joined: Fri Oct 16, 2009 11:31 pm

Re: Is it possible to split the content of a Alternative Data stream and populate it into custom columns?

Post by void »

Currently, Everything will read the entire alternate data stream.

One idea is to use regmatches.
For example:

add-column:1;2;3 regex:customproperty0:tag000:(.*)\ntag001:(.*)\ntag002:(.*)

add-column:a;b;c regex:customproperty0:tag000:(.*)\ntag001:(.*)\ntag002:(.*) a-label:"Column X" b-label:"Column Y" c-label:"Column Z" a:=$1: b:=$2: c:=$3:
Ralf_Reddings
Posts: 120
Joined: Fri Mar 24, 2023 4:53 pm

Re: Is it possible to split the content of a Alternative Data stream and populate it into custom columns?

Post by Ralf_Reddings »

void wrote: Sun Mar 17, 2024 11:13 pm Currently, Everything will read the entire alternate data stream.

One idea is to use regmatches.
Pardon me for the late follow up...

I was able to test your solution, while it works as you intended, its really not applicable for what I need.
It seems that the column is only temporary, once I change the search it gets undone, thus I am not able to work with it like standard Everything Properties.

Everything properties such as tags or extensions are constant and their values can always be referenced by the various functions and transform them.

I suppose I can apply a filter to always apply the RegEx capture group but I am not sure how optimal this would be against large database spanning 10+ disks and since only one filter can be active, this might complicate things

Everything already has the ability to create custom columns and assign arbitrary data for their values.

If I may ask for one feature request, can we get the ability to split a arbitrary property into two parts, and assign both parts to
custom_property_
columns.

For example if I had a value such as "Hello World", split it by " " and assign both parts to custom columns, with the result being something like:

Code: Select all

custom_property_0=Hello
custom_property_1=World
This is the one feature that is missing on Everything, often times, its not up to us how we get the data, if we can parse it and then assign the results to custom_property_ columns, that would be perfect.

I hope you will consider adding this feature, I really need it.
void
Developer
Posts: 16698
Joined: Fri Oct 16, 2009 11:31 pm

Re: Is it possible to split the content of a Alternative Data stream and populate it into custom columns?

Post by void »

I will consider an option to split or format alternate data streams.
Thank you for the suggestion.

If the data is small, consider splitting the values into their own streams.
For example:
File1.txt:Tag000
File1.txt:Tag001
File1.txt:Tag002
...
Ralf_Reddings
Posts: 120
Joined: Fri Mar 24, 2023 4:53 pm

Re: Is it possible to split the content of a Alternative Data stream and populate it into custom columns?

Post by Ralf_Reddings »

Believe me I considered going back to that and just be done with it a number of times, since Everything has no problem with it. its just that this data is also being written and read by two other programmes and they start to show noticeable decrease in performance when reading streams for 300 files streams on request, 900 files or above they just choke.

Storing values for multiple columns into a single stream was how I could mitigate this.

Anyways, I am glad you are considering it, best news all day for me.
Post Reply