Substitute DAT

From TouchDesigner 099 Wiki

Summary

The Substitute DAT changes the cells of the incoming DAT using pattern matching and substitution strings. It outputs a table with the same number of rows and columns.

See examples below. Also you can use the second input to provide a table of strings to substitute, the first column being the "before" strings and the second column being the "after" strings.

PythonIcon.png substituteDAT_Class

Parameters - Substitute Page

Before /before - Search term to replace. The following special characters may be used:

  • * - match any number of characters
  •  ? - match a single character
  • [] - match any character defined within the brackets

To match these special characters exactly, put a backslash (\) before the special character.

After/after - The replacement term. This replaces everything matched in the search term. Spaces are permitted.

Match /match - Specify where to match:

  • Anywhere /anywhere - Matches any part of the string.
  • Exact /anywhere - The string must match the search term exactly.
  • At Start /anywhere - Match the search term to the beginning of the string.
  • At End /anywhere - Match the search term to the end of the string.

Case Sensitive /case - Respect case sensitivity in search term.

Expand the From String /expand - Expand variables and back quotes in the From string.

Expand the To String /expandto - Expand variables and back quotes in the To string.

First Match Only - Replaces only the first instance of the matching string.

Parameters - Scope Page

Exclude First Row /xfirstrow - Forces the first row to be ignored even if it is not specified by the Select Rows settings.

Exclude First Column /xfirstcol - Forces the first column to be ignored even if it is not specified by the Select Cols settings.

Select Rows /extractrows - This parameter allows you to pick different ways of specifying the rows selected.

  • All - All rows selected.
  • by Name - Rows selected using Start Row Name and End Row Name parameters.
  • by Index - Rows selected using Start Row Index and End Row Index parameters.
  • by Start Name, End Index - Rows selected using Start Row Name and End Row Index parameters.
  • by Start Index, End Name - Rows selected using Start Row Index and End Row Name parameters.
  • by Values - Rows selected by specifying the row values explicitly.
  • by Condition - Rows selected by an expression to be evaluated for the from column.

Start Row Name /rownamestart - Specify the row name to start the selection range from.

Start Row Index /rowindexstart - Specify the row index to start the selection range from.

End Row Name /rownameend - Specify the row name to end the selection range.

End Row Index/rowindexend - Specify the row index to end the selection range.

Row Select Values /rownames - Specify actual row names that you want to select. You can use pattern matching, for example row[1-4] will select all the rows names row1 thru row4.

Row Select Condition /rowexpr - Specify an expression that will be evaluated. If the expression evaluates to true, the row will be selected.

Expand the parameter and you will see that it is in expression mode.

SelectDAT rowselectexpr.png

By default, the Python expression is re.match('.*',me.inputCell.val) != None. '.*' means match any character multiple times, so this expression matches all values. If you want to match the parent's operator name followed by any numeric number you can use me.parent().name+'[0-9]*', where '[0-9]*' matches any numerical string. '.*'+parent().name+'.*' will match any cell that contains the operator's parent name. You can check Regular Expression Operations for additional information on how to use the Python Regular Expression module.

In Tscript, you can access the cell value with the local variable $V, and the row and column with $R and $C

From Column /fromcol - When selecting rows by values, this parameter selects which column to use when matching cell values to Selected Row Values to determine which rows are selected.


Select Cols /Select cols - This parameter allows you to pick different ways of specifying the columns selected.

  • All - All columns selected.
  • by Name - Columns selected using Start Col Name and End Col Name parameters.
  • by Index - Columns selected using Start Col Index and End Col Index parameters.
  • by Start Name, End Index - Columns selected using Start Col Name and End Col Index parameters.
  • by Start Index, End Name - Columns selected using Start Col Index and End Col Name parameters.
  • by Values - Columns selected by specifying the column values explicitly.
  • by Condition - Rows selected by an expression to be evaluated for the from row.

Start Col Name /colnamestart - Specify the column name to start the selection range from.

Start Col Index /colindexstart - Specify the column index to start the selection range from.

End Col Name /colnameend - Specify the column name to end the selection range.

End Col Index /colindexend - Specify the column index to end the selection range.

Col Select Values /colnames - Specify actual column names that you want to select. You can use pattern matching, for example colvalue[1-4] will select all the columns named colvalue1 thru colvalue4.

Col Select Condition /colexpr - Specify an expression that will be evaluated. If the expression evaluates to true, the column will be selected. See Row Select Condition for more details.

From Row /fromrow - When extracting columns by Specified Names, this parameter selects which row to use when matching cell values to Selected Col Values to determine which columns are selected.


Examples

Source line or cell: /vegetables/3219/*/parsley.jpg?v=200

From To Match Result
* x Anywhere xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
/*/ / At Start /3219/*/parsley.jpg?v=200
\* x Anywhere /vegetables/3219/x/parsley.jpg?v=200
[1234567890] x Anywhere /vegetables/xxxx/*/parsley.jpg?v=200
?* At End /vegetables/3219/*/parsley.jpg
\? x Anywhere /vegetables/3219/*/parsley.jpgxv=200

See Also