;------------------------------------------------------------------------------ ; NAME: CLEAN ; ; PURPOSE: To remove all unprintable characters from the given string ; ; CALLING SEQUENCE: Result = CLEAN (text, [/SPACE]) ; ; INPUTS: ; Text: Scalar string of characters to be cleaned ; OUTPUTS: ; Result: Scalar string of characters removed of all unprintable characters ; ; OPTIONAL INPUTS: ; SPACE: removes all unprintable characters including all space chars. ; ; EXAMPLE: ; To remove all unprintable chars except space ; IDL> word = CLEAN ('the [tab]file is [lf][cr]') ; IDL> print, word ; the file is ; To remove all unprintable chars including space ; IDL> word = CLEAN ('the [tab]file is [lf][cr]',/SPACE) ; IDL> print, word ; thefileis ; ; PROCEDURES USED: none ; ; MODIFICATION HISTORY: ; Written by: P. Khetarpal [Jan 15, 2003] ; Last modified: Unknown [< Jan 22, 2013] ; ; For a complete list of modifications, see changelog.txt file. ; ;------------------------------------------------------------------------------ function clean, text, SPACE = space ; error protection: on_error, 2 ; check for SPACE keyword specification: space = keyword_set(space) ; process the text only if string is not NULL: status = size(text, /type) if (status ne 7) then text = string(text) if (strlen(text) ne 0) then begin btext = byte(text) ; find the wanted chars ommitting or including the space char: pos = (space) ? where (btext gt 32B and btext lt 127B) : $ where (btext ge 32B and btext lt 127B) ; assign processed value of text: text = (pos[0] ne -1) ? string(btext[pos]) : "" endif return, text end