Comment lire et écrire dans un fichier binaire ? Urgent

cs_miriame Messages postés 40 Date d'inscription jeudi 11 août 2005 Statut Membre Dernière intervention 18 novembre 2005 - 12 août 2005 à 16:16
cs_miriame Messages postés 40 Date d'inscription jeudi 11 août 2005 Statut Membre Dernière intervention 18 novembre 2005 - 17 août 2005 à 10:05
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

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
12 août 2005 à 18:43
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
0
cs_MasterHack Messages postés 586 Date d'inscription jeudi 18 septembre 2003 Statut Membre Dernière intervention 13 février 2008 2
13 août 2005 à 04:24
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
0
cs_miriame Messages postés 40 Date d'inscription jeudi 11 août 2005 Statut Membre Dernière intervention 18 novembre 2005
17 août 2005 à 10:05
Merci de votre aide, je vais essayer ca.
0
Rejoignez-nous