Pascal Script: Types
TODO: Review
This page lists and explains all supported types in Pascal Script used within ReNamer.
Integer types
Integer types store whole numbers and are used for counting, indexing, and arithmetic operations. Choose the appropriate size based on the range of values you need to represent.
| 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
Floating point types store decimal numbers and are used for calculations requiring fractional values or very large/small magnitudes.
| 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
String types store text and sequences of characters.
| 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/AnsiStringString type and the conversion process to/from UnicodeString/WideString type differ between versions of ReNamer.
| ReNamer version | Default encoding for |
Conversion between WideString and |
|---|---|---|
| 7.0 and later | 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 False. |
Array |
Single and multi dimensional indexable sequence of data. |
Record |
A structure that holds a set of different data types. |
Variant |
|
PChar |
Pointer to a Char value, and can also be used to point to characters within a string. |
A few examples:
type
TPerson = record
Name: WideString;
Age: Integer;
end;
var
Person: TPerson;
Numbers: Array of Integer;
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 defineddefine 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.