Have you looked at the Design Functions? You can get a list of field names from a layout. You can then loop over them to get the data and perform the substitutions.
+1 on Malcom's answer and to expand on that: Once you have the field names, you can use the GetField function in order to use the field's name to get the field's value.
The problem with using find mode is that when you are in find mode, the content of all but global fields is not accessible given that they are now blank so that you can enter find criteria into them.
Yes ... thx for the push
I've been toying in that direction , value lists too.
Note also that you could get a list of values simply through:
list ( field1 ; field2 ; field3 ... )
no loop needed.
oh my gosh ... how simple is that !