retaks666
Messages postés286Date d'inscriptionjeudi 2 janvier 2003StatutMembreDernière intervention16 juillet 2007
-
21 déc. 2004 à 19:58
mythic_kruger
Messages postés241Date d'inscriptionjeudi 8 janvier 2004StatutMembreDernière intervention10 novembre 2005
-
8 juil. 2005 à 19:19
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
A voir également:
Problème lecture/ecriture fichier en binaire aidez moi svp
retaks666
Messages postés286Date d'inscriptionjeudi 2 janvier 2003StatutMembreDernière intervention16 juillet 2007 21 déc. 2004 à 20:37
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
Gobillot
Messages postés3140Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention11 mars 201934 21 déc. 2004 à 21:21
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
retaks666
Messages postés286Date d'inscriptionjeudi 2 janvier 2003StatutMembreDernière intervention16 juillet 2007 21 déc. 2004 à 22:14
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 ;)