Open text.text As Binary ....

cs_BadNews Messages postés 98 Date d'inscription samedi 30 novembre 2002 Statut Membre Dernière intervention 10 septembre 2007 - 11 févr. 2003 à 23:55
cs_Humphrey Messages postés 22 Date d'inscription samedi 25 janvier 2003 Statut Membre Dernière intervention 16 février 2003 - 14 févr. 2003 à 08:50
Allo

J'aimerais savoir comment on fait pour lire un fichier en code binaire pour ensuite l'envoyer via winsock. Bien sur , j'aimerais savoir comment faire pour le reconstruire de l'autre coté (Serveur/Client).

Je sais qu'il faut que je mettre le contenue du code dans une variable et qu'il faut envoyé cette variable ...

Donc , j'aimerais juste savoir comment ..
Lire code binaire
Mettre en mémoire (variable)
Envoyer via winsock (ca je le sais)
Recevoir via winsock (ca aussi ;))
Reconstruire

J'ai essayer de décortiquer des sources trouvées sur ce site mais comme je suis débutant ... ce n'est pas tout le temp une réussite :( . Donc ne me dite pas qu'il y plein d'exemple sur ce site .... :P

Merci de bien vouloir m'aider ....

Bad*News

8 réponses

MrDogbert Messages postés 133 Date d'inscription jeudi 26 octobre 2000 Statut Membre Dernière intervention 20 juillet 2004 1
12 févr. 2003 à 00:06
Si dans ton fichier tu veux recuperer une variable dont la structure est complexe
ex private type UnFichierConfig
nom as string
dateModif as string
etc..
end type

(ce n est qu un exemple bidon)

Le but est de trouver le moyen de passer une variable structurée par Winsock, donc en string. Ce que je fais moi ca ressemble a ca pour un prog de chat:

¤MSG:User1,User2,User3:blablabla

il faut que tu trouves un moyen de delimiter les différentes parties de ta variable dans ta string
ici ¤MSG signifie qu il s agit d un message envoyé
:User1...USer3: liste des destinataires
blablabla message envoyé

C'est tout bete mais il faut s embeter a faire une transformation du coté client et du coté serveur.

J espere que c est bien ce que tu voulais savoir.

MrDogbert
0
cs_BadNews Messages postés 98 Date d'inscription samedi 30 novembre 2002 Statut Membre Dernière intervention 10 septembre 2007 1
12 févr. 2003 à 00:35
Ok ,
mais moi je veux simplement envoyer un fichier.

Je dois le lire en code binaire et je ne sais pas comment.
Pour l'envoyer et le recevoir , c'est pas un problème.

la fonction ressemble a ceci ..

Chemin = "x:\xxxxx"
Close #1
Open Chemin For Binary As #1
.....................
.....................
Close#1

je sais aussi que je dois effectuer une boucle pour récupérer tout l'information contenue dans ce fichier
mais je ne sais pas comment.Ensuite , je dois mettre
le contenue dans une variable pour l'envoyer
comme ceci ...

winsock.SendData Variable

Pour recevoir

Private Sub wTrans_DataArrival(ByVal bytesTotal As Long)

winsock.GetData Variable

Et la je dois le reconstruire ...

Get #1 ....

End Sub

Mais je n'est aucune idée comment faire ...

Merci de m'aider ....


Bad*News
0
cs_Humphrey Messages postés 22 Date d'inscription samedi 25 janvier 2003 Statut Membre Dernière intervention 16 février 2003
12 févr. 2003 à 09:39
Quel est le type de la variable que tu veux envoyer avec WinSock ?
String, Tableau de Bytes ?

Si c'est un string, pas de pb :

Code pour lire le fichier en un seul bloc :

Dim strBuffer as string
Dim iCanal as integer

iCanal= freeFile
Open "TonFichier" for binary access read shared as iCanal
strBuffer=lof(iCanal)
Get #iCanal,1,strBuffer
Close iCanal

' attention tout de même à la taille du fichier...

....

WinSock.SendData strBuffer
0
cs_BadNews Messages postés 98 Date d'inscription samedi 30 novembre 2002 Statut Membre Dernière intervention 10 septembre 2007 1
12 févr. 2003 à 22:38
Ok merci ,
c'est exactement ca !!

Maintenant je sais comment le lire ...

mais la , comment je fais pour le reconstruire de l'autre coté
(Serveur/Client) ??

Merci de m'aider ...
0

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

Posez votre question
cs_BadNews Messages postés 98 Date d'inscription samedi 30 novembre 2002 Statut Membre Dernière intervention 10 septembre 2007 1
12 févr. 2003 à 23:08
C'est exatement ca !!

Maintenant que je sais comment le lire , comment dois-je faire pour le reconstruire ?? Je remplace Get # pas Put # ???

Merci de bien vouloir m'aider ....
0
cs_Humphrey Messages postés 22 Date d'inscription samedi 25 janvier 2003 Statut Membre Dernière intervention 16 février 2003
13 févr. 2003 à 09:46
Private Sub wTrans_DataArrival(ByVal bytesTotal As Long)

Dim strBuffer as string
Dim iCanal as integer

strBuffer= string(bytesTotal,32)

winsock.GetData strBuffer

On local error resume next
kill "TonFichier"
On local error goto 0

iCanal=freefile
open "TonFichier" for binary access write shared as iCanal
Put #iCanal,1,strBuffer
close #iCanal

End Sub

' si ça marche, tu me dois une sucette.. ;o))

A+
Humphrey
0
cs_BadNews Messages postés 98 Date d'inscription samedi 30 novembre 2002 Statut Membre Dernière intervention 10 septembre 2007 1
13 févr. 2003 à 23:29
C'est exactement ca !!

mais je n'arrive pas à le faire ...
j'obtiens un fichier de 1 octec ....
bref , la c'est le transfert qui ne fonctionne pas.
Mon fichier est un image , je crois que je dois faire un boucle pour récupérer tout l'information contenue dans le fichier... Si tu peux m'aider ...

Merci

Bad*News
0
cs_Humphrey Messages postés 22 Date d'inscription samedi 25 janvier 2003 Statut Membre Dernière intervention 16 février 2003
14 févr. 2003 à 08:50
Normal...
Je viens de lire la doc sur le contrôle WinSock (je ne l'ai jamais utilisé) :

Voilà un code qui devrait marcher :

Private Sub wTrans_DataArrival(ByVal bytesTotal As Long)

Dim strBuffer as string
Dim iCanal as integer


winsock.GetData strBuffer

On local error resume next
kill "TonFichier"
On local error goto 0

iCanal= freefile
open "TonFichier" for binary access write shared as iCanal
Put #iCanal,1,strBuffer
close #iCanal

' et bytesTotal devrait te retourner la longueur du fichier

End Sub

' si ça marche, tu me dois toujours une sucette.. ;o))

A+
Humphrey
0
Rejoignez-nous