The R:BASE configuration file contains tables that define how R:BASE processes and prints characters. If you want to change how R:BASE evaluates characters, you can modify the information in these tables, which are described below.
R:BASE saves table configurations with the database. If you make modifications to these tables in the configuration file, use the PACK command with the WITH USER CASE option to compress the database and apply the new configuration.
The Case Folding Table
The Case Folding table establishes the correspondences between uppercase and lowercase characters, such as "A" and "a." R:BASE uses this table when testing characters for equality when the CASE setting is off.
Each line in this table starts with "CASEP" and is followed by two ASCII character codes corresponding to the uppercase and lowercase characters. For example, the following line shows that "a" (ASCII code 97) corresponds to "A" (ASCII code 65):
CASEP 97 65
The Collating Table
The Collating table equates two characters in sorting and inequality testing (>, >=, <, and <=).
Each line in this table begins with "COLLATE" and is followed by two ASCII character codes, whose corresponding characters are considered equal in a sorting sequence. For example, the following lines indicate that "a" (ASCII code 97), "ä" (ASCII code 228), and "A" (ASCII code 65) are all equal in a sorting order:
COLLATE 97 65
COLLATE 228 65
The Printer Table (DOS Only)
The Printer table tells the printer how to print certain characters. Some printers cannot print certain international characters, such as characters with accents or umlauts, so the printer must combine two or more characters to create the international character.
Each line in this table begins with "FOLD" and is followed by a character and its ASCII code, then one or more ASCII codes whose corresponding characters must be combined to create the first character. For example, the following line tells the printer how to print "à" (ASCII code 133); print "a" (ASCII code 97), backspace (BS), then print an accent "`" (ASCII code 96):
FOLD à 133 97 BS 96
If your printer can print a character without combining other characters, do not delete the line. Instead, edit the line. After "FOLD," enter the character, the character's ASCII code two times, then "00 00." For example, if your printer can print "à," edit the line as follows:
FOLD à 133 133 00 00
The Expansion Character Table
The Expansion Character table equates one character to two other characters. For example, you can equate "ß" to "SS." This table is used in tables, columns, variables, WHERE clauses, ORDER BY clauses, IF and WHILE commands, and indexed and non-indexed columns.
Each line in this table begins with "EXPAND" followed by three ASCII character codes. You can have up to seven lines in this table. For example, the following line equates "ö" (ASCII code 246) to "oe" (ASCII codes 111 and 101):
EXPAND 246 111 101
The Character Folding Table
The Character Folding table equates uppercase characters to lowercase characters. This table is used in string-manipulation functions.
Each line in this table begins with "LCFOLD" and is followed by two ASCII character codes. For example, the following line equates "A" (ASCII code 65) to "a" (ASCII code 97):
LCFOLD 65 97
The Case-Sensitive Collating Table
The Case-Sensitive Collating table lists characters and their position in the sequence order of all characters. This table is used when the CASE setting is on and when building indexes for columns with the TEXT data type.
Each line in this table begins with "COLLATEC" and is followed by an ASCII character code and its sequence position. For example, the following line indicates that "B" (ASCII code 66) is in the 76th position in the sequence order:
COLLATEC 66 76
If a character is not in this list, its sequence position number is the same as its ASCII character code.