buffer

Afficher les obsolètes

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

Un tampon est un objet qui représente un bloc de mémoire de taille fixe modifiable.La bibliothèque tampon fournit des fonctions pour la création et la manipulation d'objets tampon, fournissant toutes ses fonctions à l'intérieur de la variable globale buffer.

Le tampon est destiné à être utilisé comme structure de stockage de données binaires de bas niveau, remplaçant l'utilisation de string.pack() et de string.unpack().Les cas d'utilisation incluent la lecture et l'écriture de formats binaires existants, le travail avec des données sous une forme plus compacte, la sérialisation vers des formats binaires personnalisés, et le travail général avec des types de mémoire natifs comme les entiers de longueur fixe et les flottes.

Lorsqu'il est transmis via les API de Roblox, y compris l'envoi d'un tampon via des événements personnalisés, l'identité de l'objet tampon n'est pas préservée et la cible recevra une copie.Semblable à d'autres limitations, le même objet tampon ne peut pas être utilisé à partir de plusieurs scripts Actor parallèles (Luau parallèle).

De nombreuses fonctions acceptent un décalage en octets dès le début du tampon.L'offset de 0 à partir du début de l'accès à la mémoire tampon permet d'accéder au premier octet.Tous les décalages, les comptages et les tailles devraient être des nombres entiers non négatifs.Si les octets auxquels une opération de lecture ou d'écriture a accès sont en dehors de la mémoire tampon, une erreur est échouée.

Les méthodes read et write qui fonctionnent avec des entiers et des flottants utilisent l'encodage peu endian.

Résumé

Fonctions

Fonctions

create

Crée un tampon de la taille demandée avec tous les octets initialisés à 0 .La limite de taille est de 1 GiB, ou 1 073 741 824 octets.Gardez à l'esprit que les buffers plus grands peuvent échouer à s'allouer si l'appareil a peu de mémoire.

Paramètres

size: number

Taille du tampon.

Retours

fromstring

Crée un tampon initialisé aux contenus de la chaîne. La taille du tampon correspond à la longueur de la chaîne.

Paramètres

str: string

Retours

tostring

Renvoie les données tampon comme une chaîne.

Paramètres

Retours

Renvoie la taille du tampon en octets.

Paramètres

Retours

readbits

Lit une gamme de bits dans un entier non signé à partir du tampon en fonction d'un entier spécifique bitCount à partir de 0 à 32, y compris.Par exemple :

Notez que la largeur de 0 bit est supportée uniquement pour ne pas échouer dans les cas généralisés où le nombre de bits est dynamique, et la lecture de 0 bits retourne 0 .Notez également que, puisque la taille maximale du tampon est de 1 Go, bitOffset ne peut pas être traité comme un nombre entier de 32 bits comme l'écartement de octet dans d'autres fonctions de tampon.

Paramètres

bitOffset: number

Décalage depuis le début de la mémoire tampon, à partir de 0 .

bitCount: number

Compte de bits entiers à lire. L'erreur est lancée si cette valeur n'est pas à portée de 0 à 32, inclusive.

Retours

readi8

Lit les données du tampon en réinterprétant les octets à l'offset comme un entier signé de 8 bits et en le convertissant en un nombre.

Paramètres

offset: number

Décalage depuis le début de la mémoire tampon, à partir de 0 .

Retours

readu8

Lit les données du tampon en réinterprétant les octets à l'offset comme un entier non signé de 8 bits et en le convertissant en un nombre.

Paramètres

offset: number

Décalage depuis le début de la mémoire tampon, à partir de 0 .

Retours

readi16

Lit les données du tampon en réinterprétant les octets à l'offset comme un entier signé de 16 bits et en le convertissant en un nombre.

Paramètres

offset: number

Décalage depuis le début de la mémoire tampon, à partir de 0 .

Retours

readu16

Lit les données du tampon en réinterprétant les octets à l'offset comme un entier non signé de 16 bits et en le convertissant en un nombre.

Paramètres

offset: number

Décalage depuis le début de la mémoire tampon, à partir de 0 .

Retours

readi32

Lit les données du tampon en réinterprétant les octets à l'offset comme un entier signé de 32 bits et en le convertissant en un nombre.

Paramètres

offset: number

Décalage depuis le début de la mémoire tampon, à partir de 0 .

Retours

readu32

Lit les données du tampon en réinterprétant les octets à l'offset comme un entier non signé de 32 bits et le convertit en un nombre.

Paramètres

offset: number

Décalage depuis le début de la mémoire tampon, à partir de 0 .

Retours

readf32

Lit les données du tampon en réinterprétant les octets à l'offset comme une valeur de point flottant de 32 bits et en la convertissant en un nombre.Si la valeur de point flottant correspond à n'importe quel modèle de bit qui représente NaN (pas un nombre), la valeur retournée peut être convertie en une représentation plus silencieuse NaN.

Paramètres

offset: number

Décalage depuis le début de la mémoire tampon, à partir de 0 .

Retours

readf64

Lit les données du tampon en réinterprétant les octets à l'offset comme une valeur de point flottant de 64 bits et en la convertissant en un nombre.Si la valeur de point flottant correspond à n'importe quel modèle de bit qui représente NaN (pas un nombre), la valeur retournée peut être convertie en une représentation plus silencieuse NaN.

Paramètres

offset: number

Décalage depuis le début de la mémoire tampon, à partir de 0 .

Retours

writebits

()

Écrit des données dans le tampon en fonction d'un entier spécifique bitCount de 0 à 32, y compris. est traité comme un nombre 32 bits non signé et seuls les bits les moins significatifs sont écrits.

Notez que la largeur de 0 bit n'est supportée que pour ne pas échouer dans les cas généralisés où le nombre de bits est dynamique, et l'écriture de 0 bits n'a aucun effet.Notez également que, puisque la taille maximale du tampon est de 1 Go, bitOffset ne peut pas être traité comme un nombre entier de 32 bits comme l'écartement de octet dans d'autres fonctions de tampon.

Paramètres

bitOffset: number

Décalage depuis le début de la mémoire tampon, à partir de 0 .

bitCount: number

Compte de bits entiers à écrire. L'erreur est lancée si cette valeur n'est pas à portée de 0 à 32, inclusive.

value: number

Nombre 32 bits non signé. Seuls les bits les moins significatifs bitCount sont écrits.

Retours

()

writei8

()

Écrit des données dans le tampon en convertissant le nombre en un entier signé de 8 bits et en écrivant un seul octet.

Paramètres

offset: number

Décalage depuis le début de la mémoire tampon, à partir de 0 .

value: number

Un nombre entier dans la plage [-128, 127].

Retours

()

writeu8

()

Écrit des données dans le tampon en convertissant le nombre en un entier non signé de 8 bits et en écrivant un seul octet.

Paramètres

offset: number

Décalage depuis le début de la mémoire tampon, à partir de 0 .

value: number

Un nombre entier dans la plage [0, 255].

Retours

()

writei16

()

Écrit des données dans le tampon en convertissant le nombre en un entier signé de 16 bits et en le réinterprétant comme des octets individuels.

Paramètres

offset: number

Décalage depuis le début de la mémoire tampon, à partir de 0 .

value: number

Un nombre entier dans la plage [-32,768, 32,767].

Retours

()

writeu16

()

Écrit des données dans le tampon en convertissant le nombre en un entier non signé de 16 bits et en le réinterprétant comme des octets individuels.

Paramètres

offset: number

Décalage depuis le début de la mémoire tampon, à partir de 0 .

value: number

Un nombre entier dans la plage [0, 65,535].

Retours

()

writei32

()

Écrit des données dans le tampon en convertissant le nombre en un entier signé de 32 bits et en le réinterprétant comme des octets individuels.

Paramètres

offset: number

Décalage depuis le début de la mémoire tampon, à partir de 0 .

value: number

Un nombre entier dans la plage [-2,147,483,648, 2,147,483,647].

Retours

()

writeu32

()

Écrit des données dans le tampon en convertissant le nombre en un entier non signé de 32 bits et en le réinterprétant comme des octets individuels.

Paramètres

offset: number

Décalage depuis le début de la mémoire tampon, à partir de 0 .

value: number

Un nombre entier dans la plage [0, 4,294,967,295].

Retours

()

writef32

()

Écrit des données dans le tampon en convertissant le nombre en une valeur de point flottant de 32 bits et en le réinterprétant comme des octets individuels.

Paramètres

offset: number

Décalage depuis le début de la mémoire tampon, à partir de 0 .

value: number

Un nombre de point flottant à une précision.

Retours

()

writef64

()

Écrit des données dans le tampon en convertissant le nombre en une valeur de point flottant de 64 bits et en le réinterprétant comme des octets individuels.

Paramètres

offset: number

Décalage depuis le début de la mémoire tampon, à partir de 0 .

value: number

Un nombre à double précision de point flottant.

Retours

()

readstring

Lit une chaîne de longueur count à partir du tampon à l'adresse spécifiée offset.

Paramètres

offset: number

Décalage depuis le début de la mémoire tampon, à partir de 0 .

count: number

Longueur à lu.

Retours

writestring

()

Écrit des données d'une chaîne dans le tampon à l'emplacement spécifié offset.Si un optionnel count est spécifié, seuls count octets sont pris de la chaîne.

Paramètres

offset: number

Décalage depuis le début de la mémoire tampon, à partir de 0 .

value: string

Données à écrire.

count: number

Nombre de octets à prendre de la chaîne. Cette valeur ne peut pas être supérieure à la longueur de la chaîne.

Retours

()

copy

()

Copie count octets à partir de source à partir de l'offset sourceOffset dans le target à targetOffset .

Il est possible que source et target soient identiques.Copier une région chevauchante à l'intérieur du même tampon agit comme si la région source était copiée dans un tampon temporaire, puis ce tampon est copié vers la cible.

Paramètres

target: buffer

Buffre pour copier les données.

targetOffset: number

Décalage depuis le début de la mémoire tampon, à partir de 0 .

source: buffer

Buffre pour prendre les données.

sourceOffset: number

Décalage depuis le début de la mémoire tampon, à partir de 0 .

Valeur par défaut : 0
count: number

Nombre de octets à copier. S'il est omis, l'ensemble des données source commençant par sourceOffset est pris.

Retours

()

fill

()

Définit count octets dans le tampon à partir de l'espèce spécifiée offset à value .

Paramètres

Buffre pour écrire les données.

offset: number

Décalage depuis le début de la mémoire tampon, à partir de 0 .

value: number

Un nombre entier dans la plage [0, 255].

count: number

Nombre de octets à écrire. S'il est omis, tous les octets après le décalage spécifié sont configurer.

Retours

()