4D v13.4

Character code

Home

 
4D v13.4
Character code

Character code 


 

Character code ( character ) -> Function result 
Parameter Type   Description
character  String in Character for which you want to get the code
Function result  Longint in Character code

The Character code command returns the current character code of character.

  • If the database is operating in Unicode mode (default mode for databases created with version 11 and higher of 4D), the command returns the Unicode UTF-16 code of character (included between 1 and 65535).
  • If the database is operating in ASCII compatibility mode, the command returns the ASCII code of character (included between 0 and 255).

For more information about the different modes for managing strings in 4D, please refer to the ASCII Codes section.

If there is more than one character in the string, Character code returns only the code of the first character.

The Char function is the counterpart of Character code. It returns the character that a UTF-16 or ASCII code represents.

Important: In ASCII compatibility mode, all the text values, fields, or variables that you have not yet converted to another ASCII map are Mac OS-encoded on both Macintosh and Windows. For more information, see the section ASCII Codes.

Uppercase and lowercase characters are considered equal within a comparison. You can use Character code to differentiate between uppercase and lowercase characters. Thus, this line returns True:

 ("A"="a")

On the other hand, this line returns False:

 (Character code("A")=Character code("a"))

This example returns the code of the first character of the string "ABC":

 GetCode:=Character code("ABC") ` GetCode gets 65, the character code of A

The following example tests for carriage returns and tabs:

 For($vlChar;1;Length(vtText))
    Case of
       :(vtText$vlChar≥=Char(Carriage return))
  ` Do something
       :(vtText$vlChar≥=Char(Tab))
  ` Do something else
       :(...)
  ` ...
    End case
 End for

When executed multiple times on large texts, this test will run faster when compiled if it is written this way:

 For($vlChar;1;Length(vtText))
    $vlCode:=Character code(vtText$vlChar≥)
    Case of
       :($vlCode=Carriage return)
  ` Do something
       :($vlCode=Tab)
  ` Do something else
       :(...)
  ` ...
    End case
 End for

The second piece of code runs faster for two reasons: it does only one character reference by iteration and uses LongInt comparisons instead of string comparisons to test for carriage returns and tabs. Use this technique when working with common codes such as CR and TAB.

 
PROPERTIES 

Product: 4D
Theme: String
Number: 91

The Unicode mode affects this command

 
INDEX

Alphabetical list of commands

 
HISTORY 

Modified: 4D v11 SQL

 
SEE ALSO 

ASCII Codes
Char
Character Reference Symbols