Transfert d'un fichier

souma29 Messages postés 30 Date d'inscription lundi 9 octobre 2006 Statut Membre Dernière intervention 17 avril 2007 - 9 févr. 2007 à 22:07
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 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

5 réponses

Profil bloqué
9 févr. 2007 à 22:25
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.................)

GRENIER Alain[8D]
0
souma29 Messages postés 30 Date d'inscription lundi 9 octobre 2006 Statut Membre Dernière intervention 17 avril 2007
9 févr. 2007 à 22:31
alors que dois je ajouter pour le transferer en mode binaire  ??

 Comm.InputMode = comInputModebinaire , je pense que ce code n'at pas suffisant n'est ce pas ??
0
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
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
0
souma29 Messages postés 30 Date d'inscription lundi 9 octobre 2006 Statut Membre Dernière intervention 17 avril 2007
10 févr. 2007 à 12:16
merci pour votre réponse

meme ca me parait un peu compliqué , mais je vais faire mon effort
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
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..

A+
Exploreur
0
Rejoignez-nous