Pascal Script: Types
TODOTODO: Review
This page lists and explains all supported types in Pascal Script used within ReNamer.
Integer types
| Type | Size | Minimum Value | Maximum Value |
|---|---|---|---|
Byte |
1 byte | 0 | 255 |
ShortInt |
1 byte | -128 | 127 |
Word |
2 bytes | 0 | 65,535 |
SmallInt |
2 bytes | -32,768 | 32,767 |
Cardinal |
4 bytes | 0 | 4,294,967,295 |
Integer |
4 bytes | -2,147,483,648 | 2,147,483,647 |
Int64 |
8 bytes | -9,223,372,036,854,775,808 | 9,223,372,036,854,775,807 |
Floating point types
| Type | Size | Smallest Number | Largest Number |
|---|---|---|---|
Single |
4 bytes | 1.5 x 10-45 | 3.4 x 1038 |
Double |
8 bytes | 5.0 x 10-324 | 1.7 x 10308 |
Extended |
10 bytes | 3.6 x 10-4951 | 1.1 x 104932 |
String types
| Type | Description |
|---|---|
Char |
Stores a single 8-bit character. |
String |
Holds a sequence of 8-bit characters. Commonly used for ANSI or UTF-8 encoded text. |
AnsiChar |
Alias for Char type. |
AnsiString |
Alias for String type. |
WideChar |
Stores a single 16-bit character. |
WideString |
Holds a sequence of 16-bit characters. Commonly used for UCS-2 or UTF-16 encoded text. |
UnicodeChar |
Alias for WideChar type. |
UnicodeString |
Alias for WideString type. |
The default encoding for String/AnsiString type and the conversion process to/from UnicodeString/WideString type differ between versions of ReNamer.
| ReNamer version | Default encoding for AnsiString type | Conversion between WideString and AnsiString types |
|---|---|---|
| 7.0 and later | UTF8 | Automatic, on assignment |
| Prior to 7.0 | Active system code page | Manual, using conversion functions |
The Unicode article highlights the differences between various encodings.
Mixed types
| Type | Description |
|---|---|
Boolean |
Logical value which can be either True and False. |
Array |
Single and multi dimensional indexable sequence of data. |
Record |
A structure that holds a set of different data types. |
Variant |
Flexible type which can hold any data. |
PChar |
Pointer to a Char value, and can also be used to point to characters within a string. |
Extra types
Several extra types have been defined to simplify the use of some functions.
| Type | Declared as | Description |
|---|---|---|
TDateTime |
Double |
Represents a date and time. |
TStringsArray |
Array of WideString |
Indexed list of WideString values. Deprecated in v5.74.4 Beta. Please use TWideStringArray instead. |
TWideStringArray |
Array of WideString |
Indexed list of WideString values. Added in v5.74.4 Beta. Replaces ambiguous TStringsArray type. |
TAnsiStringArray |
Array of AnsiString |
Indexed list of AnsiString values. Added in v5.74.4 Beta. |
TIntegerArray |
Array of Integer |
Indexed list of Integer values. Added in v7.3.0.4 Beta. |
Enumerations and Sets
An enumeration is simply a fixed range of named values.
For example, the fundamental Boolean data type can be considered as an enumeration consisting of two values: True and False.
A variable of an enumeration type can be assigned a single value from the enumeration.
type
TDay = (Mon, Tue, Wed, Thu, Fri, Sat, Sun);
var
Day: TDay;
begin
Day := Mon;
if Day <> Tue then
Day := Wed;
end.
Sets allow you to defined variables which can hold multiple values out of the enumeration.
type
TDay = (Mon, Tue, Wed, Thu, Fri, Sat, Sun);
TDays = set of TDay;
var
Days: TDays;
begin
Days := [Mon, Tue, Wed];
if Sun in Days then
Days := Days - [Sun];
end.