Documentation de Gambas - /cat/datarep

/cat/datarep

# Représentation des données binaire

Les instructions READ et WRITE permettent de lire et d'écrire des représentations binaires de valeurs de types de données Gambas

Type de Données | Taille | Représentation
--- | --- | ---
Boolean | 1 octet | `0` pour FALSE (faux), `255` pour TRUE (vrai).
Byte | 1 octet | La valeur de la donnée en binaire.
Short | 2 octets | La valeur de la donnée en binaire.
Integer | 4 octets | La valeur de la donnée en binaire.
Long | 8 octets | La valeur de la donnée en binaire.
Pointer | 4 octets en 32 bits 8 octets en 64 bits | La valeur du pointeur en binaire
Single | 4 octets | La valeur de la donnée en binaire..
Float | 8 octets | La valeur de la donnée en binaire.
Date | 8 octets | La date et l’heure en deux entiers de quatre chiffres.

String

variable

La longueur de la chaîne est d’abord écrite, sous forme d’un nombre entier de longueur variable :

- Un octet si la chaîne contient moins de 128 caractères.

- Deux octets si la longueur de chaîne est comprise entre 128 et 16383 caractères.

- Quatre octets si la longueur de chaîne est comprise entre 16384 et 1073741824 caractères.

- Les chaînes plus longues ne peuvent pas être écrites actuellement.

Le contenu de la chaîne est écrit ensuite.

NULL | 1 octet | Les valeurs et les chaînes nulles sont écrites comme un simple octet `0`.
Variant | Variable | Quand on écrit une valeur de type variant, un octet indiquant le type de valeur est d’abord écrit. La valeur par elle même est écrite selon cette table.

Array

2 octets + longueur du tableau + contenu du tableau

- Un octet dont la valeur est 65.

- Un octet dont la valeur représente le type de donnée du contenu du tableau.

- La longueur du tableau, écrite comme une longueur de chaîne.

- La valeur de chaque élément du tableau.

Collection

1 octet + longueur de la collection + contenu de la collection

- Un octet dont la valeur est 67 si les clés de la collection sont sensibles à la casse , 99 si elles ne le sont pas.

- La longueur de la collection, écrite comme une longueur de chaîne.

- Pour chaque item de la collection:

  - La clé, écrite comme une chaîne

  - Sa valeur associée.

Structure

Taille du contenu

- Le contenu des structures sont écrits récursivement dans l’ordre de la déclaration.

- Les tableaux enfouis sont écrits dans l’ordre. Contrairement aux tableaux normaux, ni taille ni entête de type ne sont écrits.