String literals in MAXScript are one or more characters enclosed in double quotes:
``` "3ds Max" "August 4th, 1997"
```
String literals can contain any character except another plain double quote. You can include a double quote in a string literal, as well as some useful control characters, by using a "\" (backslash) escape character sequence.
The valid escape sequences are:
ESCAPE SEQUENCE | MEANING |
---|---|
\" | a double quote character |
\n | a newline character |
\r | a carriage return character |
\t | a TAB character |
\* | an asterisk character |
\? | a question mark character |
\\ | a single "" character |
\% | a percent character |
\x{d} | a hexadecimal character |
EXAMPLE:
``` print "foo should be quoted like this: "foo" and a new line: \n"
```
would output:
``` "foo should be quoted like this: "foo" and a new line: "
```
A "\" character that does not preface one of the specified characters is left as a single backslash.
You can break a string literal into several lines and the line breaks will stay in the string.
FOR EXAMPLE:
``` "Twas brillig and the slithy tobes did gyre and gimbol in the wabe or something like that..."
```
Non-Printing Characters in Strings
You can specify non-printing characters in string literals using the \x hexadecimal escape sequence convention from C/C++. The form is:
\x{<hex_digit>}+ -- <hex_digit> is a hexadecimal digit (0-9,a-f)
EXAMPLE:
``` str = "Copyright \xa9 1997, FrabWorks, Inc"
```
would insert a copyright sign ©. Hexadecimal a9 is the code for that symbol.
Running the following script displays in Listener the characters associated with each hexadecimal code:
EXAMPLE:
``` char= "0123456789abcdef" for i=1 to char.count do for j=1 to char.count do ( s=execute(""\x"+char[i]+char[j]+""") format "%% %\n" char[i] char[j] s )
```
File Path Name Strings
File path name strings use the backslash character to separate a parent directory from its sub-directory. The backslash is used as an escape character, therefore file path names specified in a string should use the escape character sequence for a single "\" character, i.e., "\", or specify the string as verbatim using the @ character introduced in 3ds Max 2008 (see further on this page)
AN EXAMPLE IS:
``` scene_path = "g:\3dsmax25\scenes" -- specifies file path g:\3dsmax25\scenes
```
For strings that are used as file names or paths, the "/" character can be used instead of the "\". MAXScript internally interprets the "/" character as a "\" character when used in a file path name string.
AN EXAMPLE IS:
``` scene_path = "g:/3dsmax25/scenes" -- specifies file path g:\3dsmax25\scenes
```
Verbatim String Literals
Verbatim string literals added to MAXScript in 3ds Max 2008 are prefixed by the '@' character and are NOT expanded even if containing backslash escape character sequences like '\t', '\n' or '\r'.
The syntax is
@"{<character>}+"
FOR EXAMPLE,
``` --the following verbatim string remains unchanged after evaluation: thePath = @"g:\temp\newfolder\render"
```
``` "g:\temp\newfolder\render"
```
``` --while the following results in a --scrambled string with tabs and new lines: thePath = "g:\temp\newfolder\render"
```
``` "g: emp ewfolder ender"
```