Thunderstone Software Document Search, Retrieval, and Management
Search:
Texis Tutorial
 

14.7 In-line Search and Replace

The <fmtcp SANDBLAST> call allows us to do search and replace on multiple variables automatically, much the same way that <fmtcp query> does for query mark up.

Let's say we're selecting columns from a table, and we want to print them in comma-separated format for export to some other program, say a spreadsheet. To be robust, we need to check and escape sensitive characters like double-quote in our data. We can use SANDBLAST to do this quickly:


  <A NAME=printtbl>
    <$search = '"'  '\x0d?\x0a'>
    <$replace= '""' ' '>
    <fmtcp SANDBLAST NOESC $search $replace>
    <SQL ROW "select a, b, c, x, y, z from mytbl">
      <sb>
        "$a","$b","$c","$x","$y","$z"
      </sb>
    </SQL>
  </A>

We have a list of two things to search and replace:

  • Replace double-quote with two double-quotes
  • Replace newlines with space so a row isn't truncated

We pass these lists to <fmtcp SANDBLAST> , which like <fmtcp QUERY> just prepares for the search, it doesn't start yet.

In our <SQL> loop, we select six columns from mytbl . We simply print them in CSV format, inside a <sb> </sb> block. Like <mm> , <sb> turns on in-line search and replace - our CSV cleanup happens automatically without a <sandr> call for every variable. And as with <mm> , non-variable text is unaffected - our in-line quotes are not replaced, we want them as-is.

The NOESC flag says to not HTML-escape the variables as would normally happen - we're printing plain text.

Note that unlike <sandr> , no characters in the replace strings are special. This allows easy replace strings, without the need for escapement of backslash, etc.; SANDBLAST is meant for quick, bulk replacement of many variables.

(SANDBLAST was added July 8 1998, in version 2.1.899870000.)
Back: Searching Multiple Sites Concurrently - Continued Next: Dynamic Replace Strings

 
Home   ::   Products   ::   Solutions   ::   How to Buy   ::   Support   ::   Contact Us   ::   News   ::   About
Copyright © 2013 Thunderstone Software LLC. All rights reserved.