souma29
Messages postés30Date d'inscriptionlundi 9 octobre 2006StatutMembreDernière intervention17 avril 2007
-
9 févr. 2007 à 22:07
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 2016
-
10 févr. 2007 à 18:45
salut
j'ai mets ce code (classique) afin de transmettre un fichier de type texte via le port série, mais maintenant je cherche à transférer un fichier de n'importe quel type, j'ai essayé de modifier le (.TXT) mais ca pas marché...........
Donc que dois je faire exactement?
et est ce que je suis obligé de le transmmetre sous forme d'un code binaire ????
Private Sub Ouvrir_Click()
cd1.DialogTitle = "Ouvrir fichier"
cd1.CancelError = False
cd1.Filter = "Document texte (*.TXT)|*.TXT|"
cd1.FilterIndex = 1
cd1.InitDir = "C:"
cd1.FileName = ""
'Instruction pour ignorer les erreurs
On Error Resume Next
'Ouverture d'un fichier avec la méthode ShowOpen
cd1.ShowOpen
back = Chr$(13) + Chr$(10)
Open cd1.FileName For Input As #1
Line Input #1, texte
tout = texte
If Len(tout) <> 0 Then
While Not EOF(1)
Line Input #1, texte
tout = tout + back + texte
Wend
End If
zone1.Text = tout
Close #1End Sub
Il faut l'ouvrir en mode Binaire et transmettre le fichier octet par octet :ainsi tu peux gérer n'importe que type de fichier (TXT,EXE,FRM,DLL,etc.................)
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 10 févr. 2007 à 03:54
Salut
D'abord, il faut que tu comprennes la différence entre du texte et du binaire :
Quand tu fais un "Line Input", tu charges une ligne d'un fichier, et une ligne se délimite par un retour chariot.
Dans un fichier binaire, il n'y a pas de délimitation aussi nette.
Il faut donc lire tous (ou des paquets) de Bytes et les transmettre.
A la réception, bien sûr, il faudra lire les données dans ce même format Byte et les réécrire dans le fichier, et au bon endroit.
Projet trop complexe pour qu'on n'y réponde ici.
Décompose ce que tu as à faire :
Ouvrir un fichier en mode binaire --> Open ... For Binary ...
Dimensionner un tableau de Bytes pour lire un paquet --> Dim maVariable(20) As Byte
Lire 20 Bytes de ton fichier binaire --> Get #1, , maVariable
Envoyer les données --> monMSComm.Send maVariable
Boucler pour lire le paquet de Bytes suivant --> Boucle Do-Loop
Prévoir que la fin du fichier ne comportera peut-être pas un paquet de 20 bytes entier ...
Regarde dans l'aide de VB6 pour chacun de ces mots clés.
Tu as du boulot !
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Champion du monde de boule de cristal - 2005 Le savoir est la seule matière qui s'accroit quand on
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201615 10 févr. 2007 à 18:45
Salut,
Petite info : Chr$(13) + Chr$(10) <=> Vbcrlf
tu peux de ce côté faire des petite modif dans ton code, et pour ce qui touche au chaine de carractère String à la place de +, c'est mieux de mettre &, je pense..