[Editor's Note: Share your scripting discoveries, comments, problems, solutions, and experiences with products. Email your contributions (500 words or less) to r2rwinscriptsol@winnetmag.com. We edit submissions for style, grammar, and length. If we print your submission, you'll get $100.]
One of the most annoying scripting
problems is dealing with extraneous
nonprinting characters in strings.
Nonprinting characters (e.g., space,
tab, carriage return, line feed) don't
have visible symbols. The most common
nonprinting characters have
ASCII character codes in the 0 to 33
range. For example, text files often use
the substitute character, which has an
ASCII code of 26, and programming
languages frequently use the null
character, which has an ASCII code of
0. (For more information about characters'
code representations, see the
VBScript character table at http://
msdn.microsoft.com/library/en-us/
script56/html/vsmscANSITable.asp.)
You might not notice this problem
when displaying data because an extra
space or tab at the end of a line isn't
apparent. However, if you use Microsoft
Word to edit your scripts, particularly
if you use Word's click-and-type
formatting, Word might insert tabs
and spaces at arbitrary locations. For
example, the string "MyServer" might
become "MyServer ".
As this example shows, nonprinting
characters frequently occur at the
beginning or end of a string. Although
VBScript has functions that let you
remove leading spaces (LTrim), trailing
spaces (RTrim), and both leading and
trailing spaces (Trim) from strings,
these functions don't work with other
nonprinting characters.
I wrote the SuperTrim function as
an improvement to Trim. The script in
Listing 1, illustrates how
SuperTrim works. SuperTrim removes
various nonprinting characters from
the beginning and end of a string. You
can use SuperTrim to make your
scripts that manipulate strings deal
more effectively with unreadable data.
SuperTrim also lets you indent strings
in files that you'll read for data without
worrying about the effect of spaces or tabs
because the code removes the troublesome
special characters. Insert SuperTrim into your
code and use it rather than Trim to remove nonprinting characters.