Page 1 of 1

Rows of a table containing a search word

Posted: 2010-06-06 06:25:49
by js
To get (the text of) the rows of a table that contain a search word: Is it necessary to transform the table into text, or can one obtain the rows directly?

Re: Rows of a table containing a search word

Posted: 2010-06-06 13:33:36
by martin
You do not need to convert the table to text; the macro language lets you work with table cell text directly. Assuming the selection currently rests in a table, here's a macro that tells you a little bit about the selected table:

Code: Select all

# Get the first table selection
$selection = TableSelection.active
If ! $selection
	Prompt 'This macro only works if some part of a table is already selected.'
	Exit
End
$selectedRow = $selection.rowRange.location # first selected row
$selectedCol = $selection.columnRange.location

# get the table that is selected, and inspect some cells
$table = $selection.table
$firstCellText = $table.textAtRowAndColumn(0,0)
$firstSelectedCellText = $table.textAtRowAndColumn($selectedRow,$selectedCol)
Prompt "The text of the first selected cell: $firstSelectedCellText", "The text in the first cell of the table is $firstCellText"

Re: Rows of a table containing a search word

Posted: 2010-06-07 07:30:42
by js
But how about text formatting? I can see from your example how to retrieve unattributed text from individual cells. But what I need is complete rows that have a sear word in one of the cells, with formatting. Would this be easier by first transforming the table into text?

Re: Rows of a table containing a search word

Posted: 2010-06-07 09:00:56
by Kino
js wrote:But how about text formatting? I can see from your example how to retrieve unattributed text from individual cells.
Those variables are attributed text. It is Prompt command that shows them as plain text. Try to output them to a new file, for example.
But what I need is complete rows that have a sear word in one of the cells, with formatting.
It is your way of describing the problem that confused Martin, I think. If you had asked simply “How to get (the text of) the rows of a table that contain a search word?”, then you should have got something like this.

Code: Select all

Menu ':Table:Select:Rows'
Menu ':Table:Copy Table Text'
which will put the text in the clipboard.

Re: Rows of a table containing a search word

Posted: 2010-06-07 10:29:04
by js
Thank you Kino. Next time I will try to make myself better understood.