ZZEBULON
Messages postés17Date d'inscriptionmardi 1 juillet 2003StatutMembreDernière intervention23 février 2010
-
23 août 2004 à 20:58
ZZEBULON
Messages postés17Date d'inscriptionmardi 1 juillet 2003StatutMembreDernière intervention23 février 2010
-
1 sept. 2004 à 21:40
Les variables integer sont codées sur 16 bits.
Les tableaux dimensionnés en integer devraient donc occuper 16 bits par variables. Par exemple dans le code suivant:
Dim tab(1 to 2) as integer
le tableau tab devrait occuper 32 bits en mémoire.
Mais lorsque on veut l'enregistrer dans un fichier ouvert avec l'instruction Open, on s'aperçoit que sa taille dépasse les fameux 16 bits.
D'où vient cette différence, peut-on la quantifier ?
cs_rene38
Messages postés1858Date d'inscriptionsamedi 29 juin 2002StatutMembreDernière intervention17 octobre 201311 23 août 2004 à 23:21
Salut
Pour compléter :
si ton fichier .txt est ouvert en mode Binary et tes variables écrites avec l'instruction Put, tu retrouves la taille attendue :
ReDim Tabl(1 To 2) As Integer
Tabl(1) = 1
Tabl(2) = 1000
Open "h:\essai.txt" For Binary As #1
Put #1, , Tabl(1)
Put #1, , Tabl(2)
Close
te donne un fichier de 4 octets (32 bits) : 01 00 E8 03soit 0001 1 et 03E8 1000
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200620 23 août 2004 à 21:57
Salut, je pense que la différence vient du fait que tu enregistres ta variable integer sous forme de texte avec open.
Par ex, si ta var = 1, tu fais un print#numfic, var, ds ton fichier texte, tu auras en hexa 20 31 20 0D 0A donc 5 octets.
C à d que chaque valeur que tu écris dans ton fichier sera encadrée par des espaces (en hexa 20) et chaque ligne ou enreg terminé par un retour chariot + un saut de ligne (0D 0A en hexa).
Si ta var = 10, tu auras en hexa 20 31 30 20 0D 0A donc 6 octets et ainsi de suite.
Le fichier texte n'est pas représentatif de ce qui se passe en mémoire. 32767 (limite max positive de l'integer) ne prend que 16bits (donc 2 octets) en mémoire mais ça prend 9 octets (72 bits) ds le fic texte.
Cordialement, CanisLupus
Tous les glands ne deviennent pas des chênes mais tous les chênes ont été des glands