Inet qui telecharge trop doctet

cs_babbel Messages postés 10 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 17 janvier 2005 - 26 août 2003 à 23:10
s_ouamou Messages postés 17 Date d'inscription jeudi 10 juin 2004 Statut Membre Dernière intervention 24 novembre 2004 - 17 nov. 2004 à 19:46
Salut tout le monde ..

bon, ca fait 2-3 jours que je me penche sur le controle inet. grace aux nombreux poste de ce forum, j'ai pu arriver a un truc tres sympa.. genre telecharger plusieur fichier..
par contre, pour les images, j'ai un petit soucis ..
j'utilise un accés binaire pour recuperer un gif, mais la valeur recuperer par inet est incorrect.. j'ai vu dans le forum le cas ou il recupere pas assé, mais moi, il m'en récupere trop !
en effet, sur un fichier de 2590 octets, il m'en recupere 2302 .. donc, bien sur, l'image est pas lisible ..
en supprimant les premiers octets a la main, l'mage est denouveau bonne, mais bon.. c'est pas pratique.

Quelqu'un aurait-il une idée sur ce qui peut se passer ??
sinon, j'avais comme idée de tronquer la valeur que je récupère du nombre d'octet superflu... mais la, je sais po du tout comment m'y prendre ..

merci bien de votre aide, ..

bon dev

os : ce bout de code n'a rien d'extaordinaire ..

text = Inet.OpenURL(url_file, icByteArray)

Open file2 For Binary Access Write As #1
Put #1, , text
Close #1

8 réponses

cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
26 août 2003 à 23:42
8-) Neodante 8-)

Tout simplement parce télécharge ton image en HTTP et donc tu as le header de réponse du serveur : HTTP ... OK 200 ... chose je ne sais plus trop !!! Ensuite viens l'image en byte sans prob !
@+
0
cs_babbel Messages postés 10 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 17 janvier 2005
27 août 2003 à 08:31
okay d'accord ..
je comprend mieu .
j'imagine donc que je doit passer en ftp..

mais la par contre, en utilisant la meme syntaxe, ca n'ecrit rien dans le fichier ... par ailleur, via ftp, je risque de rencontrer des problemes de droit d'accés ..?!?

connais-tu un moyen pour éviter l'entete en mode http ?

merci
@+
0
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
27 août 2003 à 09:32
8-) Neodante 8-)

tu ne peux pas éviter l'entête cela fais partie du protocole HTTP (sinon ce serait le bordel sur les réseaux on serait pas qui envoie quoi et d'où et pourquoi .... !). C'est cette en-tête qui fait afficher ou ouvrir une petite fenêtre de téléchargement ! Tu as juste à couper l'en-tête (Regarde les RFC ou l'en-tête ce n'est pas très compliqué). Si tu as passe en FTP tu ne devrait pas rencontrer plus de prob de droit d'accès que pour le HTTP et je crois que tu auras aussi un petit header !
Bonne continuation et @+
0
cs_babbel Messages postés 10 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 17 janvier 2005
28 août 2003 à 11:06
salut ..
je comprend tres bien le principe, mais je ne parviens absolument pas manipuler le fichier binaire ..

j'ai essayé avec seek, input, get ..
vraiment, j'arrive pas a trouver une moulinette qui marche assez rapidement ..

aurais-tu un exemple de code qui permet de couper un nombre d'octet ou un truc dans le genre ...

j'ai trouve ceci sur vbfrance.com,

Private Function CoupeFichier(NomFichier As String, NbrCh As Double)

Dim DataF As String

DataF = Space(NbrCh)
MsgBox NomFichier
Open NomFichier For Binary As #1
Get #1, 1, DataF
Close #1

CoupeFichier = DataF

End Function

mais j'arrive pas trop a m'en servir et ca parait trop lent !!!!

merci, @+
0

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

Posez votre question
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
28 août 2003 à 16:19
8-) Neodante 8-)

Pour ce qui est de la lenteur c'est assez étonant ! En fait il faut simplement que tu connaisses ce que te renvoie le serveur avec un petit débogage pas à pas par exemple ... je ne peux pas plus t'aider.
Pour ce qui de la fonction celle-ci coupe à partir du début, toi c'est après donc on l'adapte un peu:

Get #1, NumOctetDebut, DataF

J'espère que cela t'aidera un peu !
@+
0
cs_babbel Messages postés 10 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 17 janvier 2005
29 août 2003 à 11:36
salut !!

voila ca y est ca marche ...
a force de t'atonner, ca a fini par doner un excellent résultat ..
merci de tes conseils et de ton aide ..

pour info, voila la procédure définitive :

Private Sub CoupeFichier(NomFichier As String, NomFichier2 As String, NbrCh As Double)

Dim num_file As Integer
Dim val As String
num_file = FreeFile
NbrCh = 13

Open NomFichier For Binary Access Read As num_file
Seek num_file, NbrCh
val = Input(FileLen(NomFichier) - NbrCh, num_file)

Open NomFichier2 For Binary Access Write As #2
Put #2, , val
Close #2
Close num_file

End Sub

alle, @+
bonne continuation
0
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
29 août 2003 à 15:22
8-) Neodante 8-)

De rien et bonne continuation !!!
@+
0
s_ouamou Messages postés 17 Date d'inscription jeudi 10 juin 2004 Statut Membre Dernière intervention 24 novembre 2004
17 nov. 2004 à 19:46
salut

svp j'ai besoin d'une interface qui me permet de télécharger un fichier texte à partir d'un serveur web.

merci d'avance
0
Rejoignez-nous