Problème : le OPEN ne lit qu'une partie du fichier :(

Résolu
thomvaill
Messages postés
366
Date d'inscription
mercredi 7 avril 2004
Statut
Membre
Dernière intervention
20 février 2007
- 22 déc. 2005 à 19:28
thomvaill
Messages postés
366
Date d'inscription
mercredi 7 avril 2004
Statut
Membre
Dernière intervention
20 février 2007
- 23 déc. 2005 à 17:58
Bonjour tout le monde :)
Donc, j'ai ce code dans ma source :

-----
Open "C:\WINDOWS\system32\39482temp.jpg" For Input As #1
Line Input #1, texte
fichier_jpg = texte
If Len(fichier_jpg) <> 0 Then
While Not EOF(1)
Line Input #1, texte
fichier_jpg = fichier_jpg + texte
Wend
End If
Close #1
-----

Et donc il ne lit qu'une partie du fichier JPG (genre 4 lignes sur plus de 100).

Donc voila, si vous pouvez m'aider... :D

Merci d'avance

11 réponses

thomvaill
Messages postés
366
Date d'inscription
mercredi 7 avril 2004
Statut
Membre
Dernière intervention
20 février 2007
2
23 déc. 2005 à 17:58
C'est bon ! J'ai trouvé tout seul (enfin j'ai un peut regardé sur une source de transfert par winsock). Je te met ce que j'ai mis :

Dim fichier_jpg() As Byte
Dim taille_jpg As Long

.........

Open "C:\WINDOWS\system32\39482temp.jpg" For Binary As #1

taille_jpg = LOF(1)
ReDim fichier_jpg(taille_jpg - 1)

Get #1, 1, fichier_jpg
wsk.SendData "TAILLE=" & taille_jpg
Close #1

........

wsk.SendData fichier_jpg

(Enfin y a pas tout en vrac comme ça, j'ai mis juste des petits bouts).

En tous cas ça marche ^^

Merci quand même, tu m'as mis sur la voix :)


A bientôt sur IRC Jack ;) Et bonne cuisine lol
3
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
22 déc. 2005 à 19:39
Salut
Tu ne peux pas lire un fichier binaire comme un texte.
Open ... For Binary As #1
et quand tu veux lire les données :
' Préparer une variable ayant la même longueur que les datas
Contenu = Space(LOF(1))
' Lecture totale
Get #1, , Contenu

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0
thomvaill
Messages postés
366
Date d'inscription
mercredi 7 avril 2004
Statut
Membre
Dernière intervention
20 février 2007
2
22 déc. 2005 à 20:12
Ah merci Jack ;)

(aufaite, ta lib jpg que tu m'a filé, j'ai réussit à la faire marcher xD lol)
0
thomvaill
Messages postés
366
Date d'inscription
mercredi 7 avril 2004
Statut
Membre
Dernière intervention
20 février 2007
2
22 déc. 2005 à 20:30
Ah non enfaite !
Donc maintenant, il me sors dans la variable : ÿØÿà

(j'ai ce code la :)
Open "C:\WINDOWS\system32\39482temp.jpg" For Binary As #1

fichier_jpg = Space(LOF(1))

Get #1, , fichier_jpg
Close #1

--
PS : Plus haut, j'ai Dim fichier_jpg As String
Peut etre que ça vient de la ?
0

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

Posez votre question
crenaud76
Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
28
23 déc. 2005 à 00:36
Ben c'est exactement de la que ca vient !!! Le contenu d'un fichier JPEG n'est pas de type string !!! C'est du binaire ...
0
thomvaill
Messages postés
366
Date d'inscription
mercredi 7 avril 2004
Statut
Membre
Dernière intervention
20 février 2007
2
23 déc. 2005 à 11:08
Et donc je dois metre Dim fichier_jpg as quoi ?
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
23 déc. 2005 à 13:03
Salut
... Mais tu veux en faire quoi de cette variable qui contient l'image ?
Tu peux très bien garder ta variable sous forme String.
Si tu veux passer en Byte :
Dim Contenu() As Byte
Open ... For Binary As #1
' Préparer une variable ayant la même longueur que les datas
Redim Contenu(LOF(1))
' Lecture totale
Get #1, , Contenu
Close #1

Mais tout dépend de ce que tu veux faire de ces données ...

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0
PCPT
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Membre
Dernière intervention
3 février 2018
49
23 déc. 2005 à 13:06
salut,

VB6 ... çà marche sans problème chez moi....








Option Explicit

'

Private Sub Form_Click()

Me.AutoRedraw = True

Dim Fichier_jpg As String

Open "C:\tmp.jpg" For Binary As #1

Fichier_jpg = Space(LOF(1))

Get #1, , Fichier_jpg

Close #1



Me.Print Fichier_jpg

End Sub




<small> Coloration
syntaxique automatique [AFCK]</small>



attention, les caractères suivants un VbNullChar ne sont pas affichés dans une TxtBox !!!!!


++

PCPT [AFCK]
0
thomvaill
Messages postés
366
Date d'inscription
mercredi 7 avril 2004
Statut
Membre
Dernière intervention
20 février 2007
2
23 déc. 2005 à 15:01
Bon.. ça n'a toujours pas l'air de marcher :(
Enfaite, je vous explique mieu :

- Je dois ouvrir le fichier JPG
- J'envoie sa taille dans un winsock
- Puis j'envoie le fichier par le winsock

Voila en clair se que je veux faire.
0
thomvaill
Messages postés
366
Date d'inscription
mercredi 7 avril 2004
Statut
Membre
Dernière intervention
20 février 2007
2
23 déc. 2005 à 15:02
Jack : Si tu veux pour mieu nous expliquer, viens sur IRC.
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
23 déc. 2005 à 17:23
Salut
Pas le temps pour mIRC, je suis en cuisine jusqu'à demain !
Ok pour l'utilisation.
Tu peux conserver la lecture dasn une String sans problème.
Sa taille est donc Len(Contenu)
Il te suffira de faire un WS.SendData Contenu

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0