Gambas Documentation
Aperçu du Langage
Assign
Boucle d'évènements
Chemins de Fichiers & Répertoires
Classes de conteneur natives
Constantes du langage
Constantes prédéfinies
Déclaration d'énumération
Déclaration d'évènement
Déclaration de constante
Déclaration de méthode
Déclaration de propriété
Déclaration de structure
Déclaration de tableau
Déclaration de variable locale
Déclaration de variables
Entiers
Expressions
Fonctions arithmétiques
Fonctions associées aux fichiers et dossiers
Fonctions de chaîne de caractères
Fonctions de conversion
Fonctions de date et de temps
Fonctions de flux et d'entrée/sortie
Fonctions de formatage
Fonctions de Localisation et Traduction
Fonctions de manipulation de bits
Fonctions de nombres aléatoires
Fonctions de test des caractères
Fonctions de type de données
Fonctions diverses
Fonctions et structures de contrôle
Fonctions intrinsèques
Fonctions logarithmiques et exponentielles
Fonctions trigonométriques
Formats définis par l'utilisateur
Gestion d'erreurs
Gestion des événements
Gestion des fonctions externes
Gestion des objets et des classes
Gestion des processus
Gestionnaires d'évènements globaux
Le modèle objet de Gambas
Méthodes de comparaison
Méthodes spéciales
Nombres
Nombres flottants
Opérateurs arithmétiques
Opérateurs d'affectation
Opérateurs de chaînes de caractères
Opérateurs logiques
Ordre d'évaluation des opérateurs
Représentation binaire des données
Structures de contrôle de boucles
Structures de contrôle diverses
Syntaxe des modes de fichier
Tableaux natifs
Tracés
Types de données
Utilisation des mots réservés comme identificateur
À traduire
Code Snippets
Comment faire ...
Compilation et installation
Composants
Controls pictures
Derniers changements
Dépôt d'applications
Documentation de l'Environnement de développement
Documentation des développeurs
Documents
Indenter
Index de tous les Documents
Index du langage
Lexique
LISEZ-MOI
Manuel du wiki
Messages d'erreur
Tutoriels
Wiki License

Représentation binaire des données

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

Type de Donnée 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 octets.
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 longueur de chaîne est inférieure ou égale à 127 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.

Depuis 3.15

Si la propriété Stream.NullTerminatedString est définie, alors les chaînes de caractères sont terminées par un caractère nul. Aucune longueur de chaîne n'est lue ou écrite.
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 donnée value est d’abord écrit. La valeur 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 élément de la collection:
    • La clé, écrite comme une chaîne

    • Sa valeur associée.

Structure Taille du contenu
  • Les contenus de 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.

Objets sérialisables

Depuis 3.15
1 octet + nom de classe (optionnel) + contenu de l'objet
  • Un octet dont la valeur est 79 ou 111.

  • Si l'octet initial est 111, le nom de la classe est écrit de cette manière :
    • Un octet pour la longueur de nom de la classe, entre 1 et 255.

    • Le nom de la classe.

  • le contenu de l'objet comme écrite par la méthode _write de la classe.

L'endianness de la donnée binaire est l'endianness du flux.

Voir aussi