Je n'y comprends rien, je mets dans un fichier binaire la constante
vbNull, et je la retrouve sur 4 octets ??? Dans d'autres cas elle vaut 1 (je
crois que c'est sa valeur VB, 0 étant vide et Null étant 1, lol)...
En fait, mon problème est comment générer la valeur Nulle (ascii 0)
dans 1 fichier binaire???
Je fais juste quelques tests, voici le résultat:
Dim pf As Integer
Dim x As Integer
Dim a As String
pf = FreeFile
Open "_null.fic" For Binary As pf
x = vbNull
Put pf, 1, x
Close pf
ÇA DONNE -> 1 + 0 + 0 + 0 = 4 octets ???
----------------
pf = FreeFile
Open "_null_2" For Binary As pf
a = "f"
x = vbNull
a = a & x
Put pf, 1, a
Close pf
ÇA DONNE -> 102 + 49 (ascii) = 2 octets ??? (49 = "1" ???)
---------------
pf = FreeFile
Open "_null_3" For Binary As pf
x = vbNull
a = x & "f"
Put pf, 1, a
Close pf
ÇA DONNE -> 49 + 102 (scii)...
Merci beaucoup, au revoir et à bientôt :o)
------
Site logiciels
http://irolog.free.fr
Mail
http://irolog.free.fr/ecrire/index.htm
Site perso
http://irolog.free.fr/joe/index.htm
------------------------------------------------------------------------------------
Oui mais encore, moi je voudrais avoir le Null ascii 0, soit sign??? 0ascii 00h 00000000b Et non pas le vide (rien), ceci sur 1 octet en fichier bin Comment faire ???
-----------
"Renfield" a écrit dans le message de news:
ne pas confondre VbNull et VbNullChar ...
Bonjour,
Merci :!o)
Oui mais encore, moi je voudrais avoir le Null ascii 0, soit
sign??? 0ascii 00h 00000000b
Et non pas le vide (rien), ceci sur 1 octet en fichier bin
Comment faire ???
-----------
"Renfield" <TheRenfield@gmail.com> a écrit dans le message de news:
1138612561.894888.31280@f14g2000cwb.googlegroups.com...
Oui mais encore, moi je voudrais avoir le Null ascii 0, soit sign??? 0ascii 00h 00000000b Et non pas le vide (rien), ceci sur 1 octet en fichier bin Comment faire ???
-----------
"Renfield" a écrit dans le message de news:
ne pas confondre VbNull et VbNullChar ...
X
En faisant:
Dim pf As Integer Dim a As String * 1 pf = FreeFile Open "_null_99.fic" For Binary As pf a = vbNullChar Put pf, 1, a Close pf
J'obtiens ce qui est bon: [VIDE]a, 0d, 0h, 0b
Ça semble bon grâce à la variable (*1), mais ça n'explique pas pourquoi dans certaines circonstances, il me colle 2 à 4 octets ???
------------------------
"Renfield" a écrit dans le message de news:
ne pas confondre VbNull et VbNullChar ...
En faisant:
Dim pf As Integer
Dim a As String * 1
pf = FreeFile
Open "_null_99.fic" For Binary As pf
a = vbNullChar
Put pf, 1, a
Close pf
J'obtiens ce qui est bon:
[VIDE]a, 0d, 0h, 0b
Ça semble bon grâce à la variable (*1), mais ça n'explique pas pourquoi dans
certaines circonstances, il me colle 2 à 4 octets ???
------------------------
"Renfield" <TheRenfield@gmail.com> a écrit dans le message de news:
1138612561.894888.31280@f14g2000cwb.googlegroups.com...
Dim pf As Integer Dim a As String * 1 pf = FreeFile Open "_null_99.fic" For Binary As pf a = vbNullChar Put pf, 1, a Close pf
J'obtiens ce qui est bon: [VIDE]a, 0d, 0h, 0b
Ça semble bon grâce à la variable (*1), mais ça n'explique pas pourquoi dans certaines circonstances, il me colle 2 à 4 octets ???
------------------------
"Renfield" a écrit dans le message de news:
ne pas confondre VbNull et VbNullChar ...
Pascal B.
Et comme ça ?
Dim x As Byte Dim pf as Integer
pf = FreeFile Open "_null.fic" For Binary As pf x = 0 Put pf, 1, x Close pf
Pascal B.
"X" <x> wrote in message news:ej%23a% | Bonjour, | | Merci :!o) | | Oui mais encore, moi je voudrais avoir le Null ascii 0, soit | sign??? 0ascii 00h 00000000b | Et non pas le vide (rien), ceci sur 1 octet en fichier bin | Comment faire ??? | | ----------- | | "Renfield" a écrit dans le message de news: | | > ne pas confondre VbNull et VbNullChar ... | > | |
Et comme ça ?
Dim x As Byte
Dim pf as Integer
pf = FreeFile
Open "_null.fic" For Binary As pf
x = 0
Put pf, 1, x
Close pf
Pascal B.
"X" <x> wrote in message news:ej%23a%23rYJGHA.1028@TK2MSFTNGP11.phx.gbl...
| Bonjour,
|
| Merci :!o)
|
| Oui mais encore, moi je voudrais avoir le Null ascii 0, soit
| sign??? 0ascii 00h 00000000b
| Et non pas le vide (rien), ceci sur 1 octet en fichier bin
| Comment faire ???
|
| -----------
|
| "Renfield" <TheRenfield@gmail.com> a écrit dans le message de news:
| 1138612561.894888.31280@f14g2000cwb.googlegroups.com...
| > ne pas confondre VbNull et VbNullChar ...
| >
|
|
pf = FreeFile Open "_null.fic" For Binary As pf x = 0 Put pf, 1, x Close pf
Pascal B.
"X" <x> wrote in message news:ej%23a% | Bonjour, | | Merci :!o) | | Oui mais encore, moi je voudrais avoir le Null ascii 0, soit | sign??? 0ascii 00h 00000000b | Et non pas le vide (rien), ceci sur 1 octet en fichier bin | Comment faire ??? | | ----------- | | "Renfield" a écrit dans le message de news: | | > ne pas confondre VbNull et VbNullChar ... | > | |
X
Peut être un début d'explication, en binaire il colle la taille de la variable, alors avant je mettais des variables plus grande qu'1 octet, et en binaire, il prend la place de la variable (en fichier je parle), ce qui est praique d'ailleur, il suffit de faire un type, ou de mettre tout dans une scrting avec longueur précisée, et ç prend juste la place voulue (i/o)...
Donc, si je veux balancer un Null ascii 0, faut faire: dim var as string *1 var = vbNullChr put, ptr, octet (facu si 1), var
Bon, sauf si on m'envoie des infos complémentaires ou contraires, je ferai attention, car j'écris directement das les fichiers, si j'ai un null je ferai le traitement spécial sus-cité...
Peut être un début d'explication, en binaire il colle la taille de
la variable, alors avant je mettais des variables plus grande qu'1 octet, et
en binaire, il prend la place de la variable (en fichier je parle), ce qui
est praique d'ailleur, il suffit de faire un type, ou de mettre tout dans
une scrting avec longueur précisée, et ç prend juste la place voulue
(i/o)...
Donc, si je veux balancer un Null ascii 0, faut faire:
dim var as string *1
var = vbNullChr
put, ptr, octet (facu si 1), var
Bon, sauf si on m'envoie des infos complémentaires ou contraires, je
ferai attention, car j'écris directement das les fichiers, si j'ai un null
je ferai le traitement spécial sus-cité...
Peut être un début d'explication, en binaire il colle la taille de la variable, alors avant je mettais des variables plus grande qu'1 octet, et en binaire, il prend la place de la variable (en fichier je parle), ce qui est praique d'ailleur, il suffit de faire un type, ou de mettre tout dans une scrting avec longueur précisée, et ç prend juste la place voulue (i/o)...
Donc, si je veux balancer un Null ascii 0, faut faire: dim var as string *1 var = vbNullChr put, ptr, octet (facu si 1), var
Bon, sauf si on m'envoie des infos complémentaires ou contraires, je ferai attention, car j'écris directement das les fichiers, si j'ai un null je ferai le traitement spécial sus-cité...
X
Ouais, merci, ça marche aussi, comme (voir mes réponses dans ce fil), comme quand j'ai mis à la place de ton x(byte), une string*1=vbnullChr...
Ouais, ouais, je crois que c'est à cause de la taille de la variable, il prend en binaire la taille de la variable...
Par contre en alpha il ne me met rien, alors que pour l'ascii 1 je vais avoir un petit carré [], est-ce normal à ton avis ???
Merci encore :o)
------------
"Pascal B." a écrit dans le message de news: eki$
Et comme ça ?
Dim x As Byte Dim pf as Integer
pf = FreeFile Open "_null.fic" For Binary As pf x = 0 Put pf, 1, x Close pf
Pascal B.
"X" <x> wrote in message news:ej%23a% | Bonjour, | | Merci :!o) | | Oui mais encore, moi je voudrais avoir le Null ascii 0, soit | sign??? 0ascii 00h 00000000b | Et non pas le vide (rien), ceci sur 1 octet en fichier bin | Comment faire ??? | | ----------- | | "Renfield" a écrit dans le message de news: | | > ne pas confondre VbNull et VbNullChar ... | > | |
Ouais, merci, ça marche aussi, comme (voir mes réponses dans ce
fil), comme quand j'ai mis à la place de ton x(byte), une
string*1=vbnullChr...
Ouais, ouais, je crois que c'est à cause de la taille de la variable, il
prend en binaire la taille de la variable...
Par contre en alpha il ne me met rien, alors que pour l'ascii 1 je vais
avoir un petit carré [], est-ce normal à ton avis ???
Merci encore :o)
------------
"Pascal B." <Pascbr@hotmail_ANTISPASM_.com> a écrit dans le message de news:
eki$y3YJGHA.3896@TK2MSFTNGP15.phx.gbl...
Et comme ça ?
Dim x As Byte
Dim pf as Integer
pf = FreeFile
Open "_null.fic" For Binary As pf
x = 0
Put pf, 1, x
Close pf
Pascal B.
"X" <x> wrote in message news:ej%23a%23rYJGHA.1028@TK2MSFTNGP11.phx.gbl...
| Bonjour,
|
| Merci :!o)
|
| Oui mais encore, moi je voudrais avoir le Null ascii 0, soit
| sign??? 0ascii 00h 00000000b
| Et non pas le vide (rien), ceci sur 1 octet en fichier bin
| Comment faire ???
|
| -----------
|
| "Renfield" <TheRenfield@gmail.com> a écrit dans le message de news:
| 1138612561.894888.31280@f14g2000cwb.googlegroups.com...
| > ne pas confondre VbNull et VbNullChar ...
| >
|
|
Ouais, merci, ça marche aussi, comme (voir mes réponses dans ce fil), comme quand j'ai mis à la place de ton x(byte), une string*1=vbnullChr...
Ouais, ouais, je crois que c'est à cause de la taille de la variable, il prend en binaire la taille de la variable...
Par contre en alpha il ne me met rien, alors que pour l'ascii 1 je vais avoir un petit carré [], est-ce normal à ton avis ???
Merci encore :o)
------------
"Pascal B." a écrit dans le message de news: eki$
Et comme ça ?
Dim x As Byte Dim pf as Integer
pf = FreeFile Open "_null.fic" For Binary As pf x = 0 Put pf, 1, x Close pf
Pascal B.
"X" <x> wrote in message news:ej%23a% | Bonjour, | | Merci :!o) | | Oui mais encore, moi je voudrais avoir le Null ascii 0, soit | sign??? 0ascii 00h 00000000b | Et non pas le vide (rien), ceci sur 1 octet en fichier bin | Comment faire ??? | | ----------- | | "Renfield" a écrit dans le message de news: | | > ne pas confondre VbNull et VbNullChar ... | > | |
Renfield
c'est pas simple de te comprendre, tu semble embrouillé...
je vois pas ou est le problème (*1 n'a rien a voir)
si tu veux écrire un caractère de code ASCII 0, utilise VbNullChar....
au pire, tu peux passer par un tableau de Byte, plutot qu'une chaine de caractères, si tu es perdu...
c'est pas simple de te comprendre, tu semble embrouillé...
je vois pas ou est le problème (*1 n'a rien a voir)
si tu veux écrire un caractère de code ASCII 0, utilise
VbNullChar....
au pire, tu peux passer par un tableau de Byte, plutot qu'une chaine de
caractères, si tu es perdu...