Comment lire et écrire dans un fichier binaire ? Urgent

Signaler
Messages postés
40
Date d'inscription
jeudi 11 août 2005
Statut
Membre
Dernière intervention
18 novembre 2005
-
Messages postés
40
Date d'inscription
jeudi 11 août 2005
Statut
Membre
Dernière intervention
18 novembre 2005
-
J'aurai besoin d'aide svp je cherche à lire et écrire dans un fichier binaire en VBA? apparemment les fonctions binarywriter et binaryreader n'existe pas en VB.voici ce que j'ai commencé à develloper:

########################################################
Sub modify()
On Error Resume Next
Dim MyChar, cpt
'Close #1
Debug.Print
Open "D:\TestTE_Reusable_pointe_vers_local\Test.tsp" For Binary Access Read As #1 ' Open file.
Open "D:\TestTE_Reusable_pointe_vers_local\Test2.tsp" For Binary Access Write As #2
If Err.Number > 0 Then
Close #1
Open "D:\TestTE_Reusable_pointe_vers_local\Test.tsp" For Binary As #1 ' Open file.
End If

Debug.Print "************************DEBUT***************************"
res = ""
cpt = 0
Do While (Loc(1) < (LOF(1) - 256)) And (cpt < 10) ' Loop until end of file.
MyChar = Input(1, #1) ' Get one character.
MyChar = Hex(Asc(MyChar))
res = res + MyChar
Debug.Print MyChar '& Hex(Asc(MyChar)) Print to the Immediate window.
'Debug.Print MyChar



cpt = cpt + 1
Loop
Debug.Print "ErrNumber" & Err.Number & " " & Err.Source & " " & Err.Description
Print #2, res
Debug.Print "ErrNumber" & Err.Number & " " & Err.Source & " " & Err.Description
If Err.Number > 0 Then

Close #2
Open "D:\TestTE_Reusable_pointe_vers_local\Test2.tsp" For Binary As #2 ' Open file.
End If

Debug.Print "************************FIN***************************"
Close #1
Debug.Print "after close #1"
Close #2
Debug.Print "after close #1"
End Sub

3 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
78
Salut
Le début est bon (l'ouverture) bien que bien compliqué avec cette gestion d'erreur bizarre.
Pour lire :

Dim Tablo() As Byte ' Tableau qui recevra les données
LLL = 100 ' nombre d'octets à lire
Redim Tablo(LLL) ' prépare le récepteur
Get #1, Position, Tablo

Voir aussi :
Put pour écrire (Ne pas utiliser Print avec un fichier ouvert en Binary)
Seek pour se déplacer dans le fichier
LOF(1) pour connaitre la taille du fichier

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
(je
Messages postés
586
Date d'inscription
jeudi 18 septembre 2003
Statut
Membre
Dernière intervention
13 février 2008
2
Salut,
desole ,pas optimize le code,:( bon voila , tout en etant d'accord avec Mr Jack,
pour lire des donnee en mode binaire
num=freefile
open chemin_du_fichier for binary as #num
stock=space(nbr_char_a_prendre) ' si tout stock=space(filelen(chemin_du_fichier))
get #num,position,stock ' pour lire du bebut position vaut 0
variable=stock
close #num
pour ecrire
num=freefile
open chemin_du_fichier for binary as #num
put #num,position,stock 'stock est ce que tu veut ecrire ds le fichier
close #num
bon reste a dire bonne prog a tout le monde , ciao



<HR>




Life is short...Learn more
Copy Rights <> Rights to Copy
Messages postés
40
Date d'inscription
jeudi 11 août 2005
Statut
Membre
Dernière intervention
18 novembre 2005

Merci de votre aide, je vais essayer ca.