Problème lecture/ecriture fichier en binaire aidez moi svp [Résolu]

Signaler
Messages postés
286
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
16 juillet 2007
-
Messages postés
241
Date d'inscription
jeudi 8 janvier 2004
Statut
Membre
Dernière intervention
10 novembre 2005
-
Bonjour, je cherche a faire un truc qui copie un fichier avec un buffer de 2Ko(16bytes), j'ai fait le code suivant, mais ça ne marche pas :'(
Quelqu'un a la solution?
Private Sub Command1_Click()
 ReDim Buffer(16) 'Redimmensionnement du tableau Buffer

Open "d:\test.txt" For Binary As #1 'Ouverture du fichier en binaire
        Do While True
            If position + 16 <= LOF(1) Then
                Get #1, position, Buffer
                position = position + 16
                MsgBox Buffer
                    Open "d:\test2.txt" For Binary As #2
                    MsgBox Buffer
                    Put #2, 1, Buffer
                    Close #2
            ElseIf position + 16 > LOF(1) And position < LOF(1) Then
                ReDim Buffer(LOF(1) - position) 'Redimmensionnement du tableau Buffer
                Open "d:\test2.txt" For Binary Access Write Shared As iCanal
                    Put #2, 1, Buffer
                Close #2
                Exit Sub
           End If
        Loop
Close #1
End Sub

4 réponses

Messages postés
286
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
16 juillet 2007

non c'est bon j'ai trouvé:
position = 1
 ReDim Buffer(16) 'Redimmensionnement du tableau Buffer

Open "d:\test.txt" For Binary As #1 'Ouverture du fichier en binaire
        Do While True
            If position + 16 <= LOF(1) Then
                Get #1, position, Buffer
                position = position + 16
                    Open "d:\test2.txt" For Binary As #2
                        Seek #2, position
                        Put #2, 1, Buffer
                    Close #2
            ElseIf position + 16 > LOF(1) And position < LOF(1) Then
                ReDim Buffer(LOF(1) - position) 'Redimmensionnement du tableau Buffer
                Get #1, position, Buffer
                Open "d:\test2.txt" For Binary As #2
                    Seek #2, position
                    Put #2, position, Buffer
                Close #2
                Exit Sub
           End If
        Loop
Close #1
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 179 internautes nous ont dit merci ce mois-ci

Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
29
il y a quand même plus simple sans être obligé de fermer et d'ouvrir les fichiers à chaque fois.

    Dim Reste    As Long
    Dim Lg       As Long
    Dim Buffer() As Byte

    Lg = 16
    ReDim Buffer(Lg - 1)

    Open "d:\test.txt" For Binary As #1
    Open "d:\test2.txt"For Binary As #2
    Reste = LOF(1)

    While Reste > 0
       If Reste < Lg Then Lg = Reste: ReDim Buffer(Lg - 1)
       Get #1, , Buffer
       Reste = Reste - Lg
       Put #2, , Buffer
       Wend

    Close #2
    Close #1


PS: 2ko = 2048 octets

Daniel
Messages postés
286
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
16 juillet 2007

oui gobillot, mais je voulais dire 2o :p Et pour ce qui est de l'ouverture/fermeture, c'est que j'ai prévu ce code dans le cas de l'arrivée de donnée d'un winsock, qui empêche de laisser ouvert, voila tout ;)
Messages postés
241
Date d'inscription
jeudi 8 janvier 2004
Statut
Membre
Dernière intervention
10 novembre 2005

Si tu voulais dire 2 octets c'est 16 bits pas 16 bytes.