table expand fast smart once, table expand fast smart once ignore caseThis function works very similarly like table expand fast smart(), with the only difference that every row in the lookup table can be be retrieved only once and will then be internally marked as taken. Further lookups for remaining rows in the target table will skip the lookup table rows already taken. The search time ratio versus table size n is O ( log(n)) ).
Indirect parameter passing is disabled
6 - 8 (For parameter description and return values: see table expand() )
table load( lookup, "Examples/Table Lookup Example 2.csv" );
table delete remaining rows ( lookup, -2 ); // Remove last 2 rows (the mom's place and 'not found' row)
table initialize( target, { Seating, inside, balcony, outside, bar } );
echo("Target table before lookup:");
table list( target );
count[] = table expand fast smart ignore case
( target, Seating, {Place to go, Table size},
lookup, Ambience, {Restaurant Name, Table size}, {}, true, {Counter,Counter} );
echo("Lookup table:");
table list( lookup );
echo("Target table after lookup (", count[], " items found):");
table list( target );
Target table before lookup:
0 : Seating
1 : inside
2 : balcony
3 : outside
4 : bar
Lookup table:
0 : Offering | Table size | Ambience | Restaurant Name | Phone Number | Counter
1 : *Chicken* | 2,4,6 | inside,bar | Rôtisserie de Paris | (212) 555-1234 | 2
2 : *Curry* | 1..10 | "self-service" | Bharat take-away | (212) 555-2345 |
3 : *Pizza*,*Pasta* | 4,6,8 | inside,outside | Luigis | (212) 555-3456 | 2
4 : *Beer*,*Wine* | * | bar | Luigis | (212) 555-3456 | 1
5 : *Pizza*,*sea*food* | * | inside,outside | All-Italian Trattoria | (212) 555-4567 | 2
6 : *Fish*,*sea*food* | 2..8 | outside | Wharf Place | (212) 555-5678 | 1
7 : *Burger*,Fries | 1..20 | =inside,"self-service" | Mr. Burgermeister | (212) 555-6789 | 1
Target table after lookup (9 items found):
0 : Seating | Place to go | Table size | Counter
1 : inside | Rôtisserie de Paris | 2,4,6 | 1
2 : balcony | | |
3 : outside | Luigis | 4,6,8 | 1
4 : bar | Rôtisserie de Paris | 2,4,6 | 1
5 : inside | Luigis | 4,6,8 | 1
6 : inside | All-Italian Trattoria | * | 1
7 : inside | Mr. Burgermeister | 1..20 | 1
8 : outside | All-Italian Trattoria | * | 1
9 : outside | Wharf Place | 2..8 | 1
10 : bar | Luigis | * | 1