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
4822
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

cs_Galain
Messages postés
1263
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
24 juillet 2013
7
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
14007
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
80
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
4822
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