from a list of multiple values based on matching a "portion" of each element
without using a view.
Say you original list "List1" contains the following:
List1 := "Apples|Fruit|$1.25" : "Oranges|Fruit|$1.10" : "Peas|Vegatable|$0.55"
: "Bannanas|Fruit|$1.50" : "Tomatos|Debatable|$0.95"
You want to create a new list of only those elements that are fruit.
List1 := "Apples|Fruit|$1.25" : "Oranges|Fruit|$1.10" : "Peas|Vegatable|$0.55"
: "Bannanas|Fruit|$1.50" : "Tomatos|Debatable|$0.95"
List2 := @Word(List1;"|";2);
List3 := @Replace(List2; "Fruit"; "");
List4 := List1 + List3;
List5 := @Replace( List1; List4; "");
List6 := @Trim(@Replace(List1; List5; ""));
Now "List6" contains the final list and can be used like this:
@Word(List6;"|";1) + " - " + @Word(List6;"|";3)
giving you a fruit list like this -
Apples - $1.25
Oranges - $1.10
Bannana - $1.50
*********************************
Optional Description of each step:
List1 - Original List
List2 - List of the second "words" in each element (Fruit, Fruit, Vagetable,
Fruit, Debatable)
List3 - List of seconnd words in element with one we want to keep Null
(,,Vegetable,Debatable)
List4 - Original List with "word 2" appended to change the elements we don't
want
Apples|Fruit|$1.25
Oranges|Fruit|$1.10
Peas|Vegatable|$0.55Vegetable
Bannanas|Fruit|$1.50
Tomatos|Debatable|$0.95Debatable
List5 - Replaces the words that didn't change with Null to make a mask of what
to remove
,,Peas|Vegatable|$0.55,,Tomatos|Debatable|$0.95
List6 - (Final List) Use the mask to Null what we don't want and trim results
to remove Nulls from list.
This was first published in November 2000