Bonjour.
j'aimerais savoir comment écrire dans un fichier des octes en binaire. je sait qu'on peut "en capter" avec le get et qu'on peut mettre des caractère de type string asvec put #X,Y,contenu mais je n'arrive pas à écrire des octets.
merci.
Version imprimable
Bonjour.
j'aimerais savoir comment écrire dans un fichier des octes en binaire. je sait qu'on peut "en capter" avec le get et qu'on peut mettre des caractère de type string asvec put #X,Y,contenu mais je n'arrive pas à écrire des octets.
merci.
et bien un octet , c'est un byte ....
:wink:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 Sub ecritByte() Dim b As Byte Dim f As Integer f = FreeFile Open "Monfichier.dat" For Binary Access Write As #f For b = Asc("a") To Asc("z") Put f, , b Next Close f End Sub Sub LectByte() Dim b As Byte Dim f As Integer f = FreeFile Open "Monfichier.dat" For Binary Access Read As #f While Not EOF(f) Get #f, , b Debug.Print Chr(b); DoEvents Wend Close f End Sub
merci bbil
dis, comment je peut conaitre la taille d'un caractère: par exemple quand je fait un put #f,y,"salut" est-ce que si je veut mettre salut01 je peut rajouter put #f,y+5,01?
merci :wink:
oui , pour connaitre la position courante dans fichier tu peu assi faire
et dans fichier tu aura en hexa :Code:
1
2
3
4 y= seek(f) Put f, y, "salut" b = 1 Put f, y + 5, b
73 61 6C 75 74 01
s a l u t .
dans le cas ou ton 01 est un octet...
:wink:
Merci beaucoup bbil.
dis, sait-tu comment "retrouver" des chifres entrés en imput et récupérés en binaire?
autre-chose, y'as-til un moyen autre que de vérifier avant si le fichier existe pour éviter de créer un fichier à la lecture binaire?
enfin, comment faire en sorte que le fichier ne contiennet que ce qu'on met dedans sans utiliser le "kill" et sans imput?
merci :wink:
qu'appelle tu les chiffres entrée en input ?...Citation:
Envoyé par méphistopheles
?qu'appelle tu "créer un fichier à la lecture binaire"..?Citation:
Envoyé par méphistopheles
?Citation:
Envoyé par méphistopheles
désolé .. mais j'ai beau relire les 3 questions, je ne les comprends pas .. peu-tu dévellopé un peu ...?
disons, si je met:Citation:
Envoyé par bbil
j'obtient à la lecture du ficier en binaire un chiffre du style "0" "1" "0" au lieu de "1".Code:
1
2
3
4
5 dim i as integer i=1 open Monchemin for binary as #1 put #1,,i close #1
or, je veut lire des fichiers avec des nombres de ce style. si tu à une idée...
quand j'ouvre un fichie, avec cette methode, un fichier est autaumatiquement créé. j'aimerais savoir si je peux éviter ça sans passer par un div de vérification.Citation:
Envoyé par bbil
Quand tu modifie un fichier binaire, tu ne sait pas s'il est plein où vide avant de l'avoir lu. je voudrais savoir s'il étais possible de l'effacer avant d'écrire dedans car si ce que l'on ecrfit est plus petit que celui existant.Citation:
Envoyé par bbil
désolé de na pas avoir été asser précis.
merci :wink:
pour :utilise des byte..(voir + haut.. dim b as byte..) si tu ve écrire octets/octets, en VB un integer c'est 16 bits , 2 octets...Code:
1
2
3
4
5 dim i as integer i=1 open Monchemin for binary as #1 put #1,,i close #1
Oui sur ouverture en mode binary .. le fichier est créé s'il n'existe pas
et je connais pas de moyen d'éviter ça... ( d'ou test existance fichier par exemple avec if dir("Monfichier.dat") ="" => fichier inexistant..)Citation:
Envoyé par Aide en ligne
et pour le dernier cas.. j'ai pas plus de réponse...
en fait, je n'écris pas le fichier mais celui-ci contient déja des nombres écrits en imput. je voudrais savoir comment les récupérer. (ce sont des nombres de -9 à 9)Citation:
Envoyé par bbil
[/quote]
[quote="bbil"]et je connais pas de moyen d'éviter ça... ( d'ou test existance fichier par exemple avec if dir("Monfichier.dat") ="" => fichier inexistant..)[/quote ] bon, c'est pas grave, un dir c'est pas long.
là, par-contre, c'est plus embétant, lire tout le fichier, c'est du suicide enfin bon, ce sera un dir & kill.Citation:
Envoyé par bbil
salut :wink:
et tu ne sais pas comment sont écrit ces nombres... , as tu un éditeur de texte ..Hexadécimal.. pour essayer de comprendre le format d'enregistrement..?Citation:
Envoyé par méphistopheles
si, ces nombres sonts écris avec la methodesi tu à une idée...Code:
1
2
3 open monchemin for imput as #1 print #1,montext. close #1
salut :wink:
? imput ça n'existe pas... ? output ou input ?
output
désolé, je mes uis emélé :oops:
salut :wink:
et la tu trouve ce que tu ve...?
sinon montre nous tes fichiers à lire...Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 Sub test2() Dim monText As String monText = "-9" Open "c:\temp\toto.txt" For Output As #1 Print #1, monText Print #1, monText + 5 Close #1 End Sub Sub testLect() Dim monText As String Open "c:\temp\toto.txt" For Input As #1 While Not EOF(1) Input #1, monText Debug.Print "<" & monText & ">" Wend Close #1
Disons que j'amerais lire des fichiers dont une partie à étée entrée en imput avec la methode binaire au lieu de devoir utiliser un melange entre les deux. par exemple une syntaxe peut être (lu en input):|6|-8|-2|5|9...
%§ÿ 'en gros, ici, écriture binaire illisible en input
...
...
...
V110 'numero de ligne connue
%§ÿ 'à nouveau du binaire
...[/code]
voilà, si tu à une idée, sachant que je connait le numero d'une ligne qui va m'indiquer où sont les parties binaires et les parties input.
salut :wink:
pourrai tu m'envoyer un de ces fichiers...?
le probleme, est un problème de version: si tu veux, je n'ai pas encore de fichiers écris en binaire mais je souaite dans la version présente, le faire (pour optimisation de taille).
or, ayant prévu des changement, j'ai écris dans mes fichiers anterieurs, la version d'écriture à la 6eme ligne.
avec mes versions de logiciel précédent, je peux lire mon fichier à la ligne 6 et vérifier que le numero de version n'est pas superieur.
pour ma prochaine version, je souaite donc continuer à lire le numero de version à la ligne 6 mais je ne sait pas le faire car il est entré en imput.
à-tu une solution?
merci.