Difference between revisions of "ReNamer:Pascal Script:Types"
Jump to navigation
Jump to search
(→Integer types: added Int64 type) |
(→Integer types: split range into high/low columns) |
||
Line 8: | Line 8: | ||
! Type | ! Type | ||
! Size | ! Size | ||
− | ! | + | ! Lowest Value |
+ | ! Highest Value | ||
|- | |- | ||
| '''Byte''' | | '''Byte''' | ||
| 1 byte | | 1 byte | ||
− | | align="center" | 0 | + | | align="center" | 0 |
+ | | align="center" | 255 | ||
|- | |- | ||
| '''ShortInt''' | | '''ShortInt''' | ||
| 1 byte | | 1 byte | ||
− | | align="center" | -128 | + | | align="center" | -128 |
+ | | align="center" | 127 | ||
|- | |- | ||
| '''Word''' | | '''Word''' | ||
| 2 bytes | | 2 bytes | ||
− | | align="center" | 0 | + | | align="center" | 0 |
+ | | align="center" | 65,535 | ||
|- | |- | ||
| '''SmallInt''' | | '''SmallInt''' | ||
| 2 bytes | | 2 bytes | ||
− | | align="center" | -32,768 | + | | align="center" | -32,768 |
+ | | align="center" | 32,767 | ||
|- | |- | ||
| '''Cardinal''' | | '''Cardinal''' | ||
| 4 bytes | | 4 bytes | ||
− | | align="center" | 0 | + | | align="center" | 0 |
+ | | align="center" | 4,294,967,295 | ||
|- | |- | ||
| '''Integer''' | | '''Integer''' | ||
| 4 bytes | | 4 bytes | ||
− | | align="center" | -2,147,483,648 | + | | align="center" | -2,147,483,648 |
+ | | align="center" | 2,147,483,647 | ||
|- | |- | ||
− | | Int64 | + | | '''Int64''' |
| 8 bytes | | 8 bytes | ||
− | | align="center" | -9,223,372,036,854,775,808 | + | | align="center" | -9,223,372,036,854,775,808 |
+ | | align="center" | 9,223,372,036,854,775,807 | ||
|} | |} | ||
Revision as of 21:42, 24 June 2013
This page lists and explains all supported types in Pascal Script used within ReNamer.
Integer types
Type | Size | Lowest Value | Highest 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 | Range |
---|---|---|
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 Ansi character |
String | Holds a sequence of Ansi characters of any length |
WideChar | Stores a single Unicode character |
WideString | Holds a sequence of Unicode characters of any length |
Note: Unicode article highlights the difference between Unicode and Ansi.
Pointer types
Type | Description |
---|---|
PChar | Pointer to a Char value, and can also be used to point to characters within a string |
Other types
Type | Description |
---|---|
Boolean | Provides an enumeration of the logical True and False values |
Array | Single and multi dimensional indexable sequences of data |
Record | Provides means of collecting together a set of different data types into one named structure |
Variant | Provides a flexible general purpose data type |
Enumerations and Sets
For example, the Boolean data type is itself an enumeration, with two possible values: True and False. If you try to assign a different value to a Boolean variable, the code will not compile.
Example | Description |
---|---|
type TDay = (Mon, Tue, Wed, Thu, Fri, Sat, Sun); var Day: TDay; begin Day := Mon; if Day <> Tue then Day := Wed; end. |
An enumeration is simply a fixed range of named values |
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. |
Whereas enumerations allow a variable to have one, and only one, value from a fixed number of values, sets allow you to have any combination of the given values |
Custom types
Several types are custom defined to simplify the usage of some functions.
Type | Declared as | Description |
---|---|---|
TDateTime | Double | Holds date and time |
TStringsArray | Array of WideString | Holds an indexable sequence of WideString |