IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Extraire l'image .JPEG encapuslée dans une pièce .CATPart (CATIA V5) [Toutes versions]


Sujet :

Macros et VBA Excel

  1. #21
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    tiens encore mieux on peut le determiner sans parcourir en transformant le tableau de byte en tableau de long et join et split

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub extract_image_catiapart()
        Dim OBJstream, BB() As Byte, b As Long, bytTemp(0 To 1) As Byte, tablo
         Set OBJstream = CreateObject("ADODB.Stream")    'object utilisé ADODB stream
        OBJstream.Open: OBJstream.Type = 1    ' open with no arguments makes the stream an empty container
        OBJstream.LoadFromFile ("C:\Users\polux\Desktop\PartsansCCP.CATPart")    'on load le fichier dans l'object
        BB = OBJstream.Read()    ' on prend directement tout le paquet
        '**************************************
        ReDim tablo(UBound(BB))
         For i = 0 To UBound(BB): tablo(i) = BB(i): Next'on trznsforme le tableau de bytes en tableau de long 
     
    code = "255,216" & Split(Join(tablo, ","), "255,216")(1) 'on récupère le code a partir de "255,216"
         MsgBox UBound(Split(code, "255,217")) on verifie si en splitant par "255,217" on a bien 1 sinon il faudra cumuler les split
         Debug.Print code
       end sub
    parti de la ton string obtenu est le code binaire de l'image
    plus qu'a mettre chaque split(code,",")(x) dans jpegfile en partant de 1 jusqu'à la fin
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  2. #22
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    tien regarde
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Sub extract_image_catiapart2()
        Dim OBJstream, BB() As Byte, b As Long, bytTemp(0 To 1) As Byte, tablo, by As Byte
        Set OBJstream = CreateObject("ADODB.Stream")    'object utilisé ADODB stream
        OBJstream.Open: OBJstream.Type = 1    ' open with no arguments makes the stream an empty container
        OBJstream.LoadFromFile ("C:\Users\polux\Desktop\PartsansCCP.CATPart")    'on load le fichier dans l'object
        BB = OBJstream.Read()    ' on prend directement tout le paquet
        '**************************************
        ReDim tablo(UBound(BB))
        For i = 0 To UBound(BB): tablo(i) = BB(i): Next
        code = "255,216" & Split(Split(Join(tablo, ","), "255,216")(1), "255,217")(0)
        tablo = Split(code, ",")
        jpegFile = FreeFile
        Open "C:\Users\polux\Desktop\PartsansCCP.jpg" For Binary Access Write Lock Write As jpegFile
        For i = 0 To UBound(tablo)
            If IsNumeric(tablo(i)) Then by = tablo(i): Put jpegFile, , by
        Next i
        Close jpegFile
    End Sub
    EDIT: !!!
    il se trouve que je viens de faire le test sur les quatre exemple du demandeur dans le rar et a chaque fois l'image c'est la fin du code
    on peut donc considérer alors que le split(code,"255,217") est inutile

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    'code = "255,216" & Split(Split(Join(tablo, ","), "255,216")(1), "255,217")(0)
        'remplacer par 
    code = "255,216" & Split(Join(tablo, ","), "255,216")(1)
    après comme maintenant on sait que l'image est a la fin
    on se sert plus de rien on écrit dans le fichier JPG qu'a partir de 255 et 216

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Sub extract_image_catiapart2()
        Dim OBJstream, BB() As Byte, ok as boolean ,i as long 
        Set OBJstream = CreateObject("ADODB.Stream")    'object utilisé ADODB stream
        OBJstream.Open: OBJstream.Type = 1    ' open with no arguments makes the stream an empty container
        OBJstream.LoadFromFile ("C:\Users\polux\Desktop\PartavecCCPsansLink.CATPart")    'on load le fichier dans l'object
        BB = OBJstream.Read()    ' on prend directement tout le paquet
        '**************************************
        jpegFile = FreeFile
        Open "C:\Users\polux\Desktop\image.jpg" For Binary Access Write Lock Write As jpegFile
        For i = 0 To UBound(BB) - 1
            If BB(i) = 255 And BB(i + 1) = 216 Then ok = True
            If ok = True Then Put jpegFile, , BB(i)
        Next
        Close jpegFile
    End Sub
    finalement pas si compliqué que cela
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  3. #23
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Heu.....
    Explique moi un truc Patrick, pourquoi avec mon code le JPG fait 3Ko et qu'avec le tiens il en fait 14 !!!!!!!
    Il est important de tenir compte de la fin du JPG.....

    Et je viens de mesurer le temps d’exécution des 3 fonction il est quasi identique, donc dans ce cas adodbstream semble pas apporter trop.
    Mais bon les fichiers étant minuscule
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  4. #24
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    oui
    les fichier etant minuscule il est difficile de faire la différence

    ci joint mon usf gif to binaire
    il y a l'exemple de silkyroad qui utilise le read (sripting comme toi) et mon usf qui lui utilise le adobstream

    fait le test avec les deux sur des JPG style fond d'écran(grande taille) la différence est flagrante et ne prete a aucune discussion tu peut me croire
    Fichiers attachés Fichiers attachés
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #25
    Invité
    Invité(e)
    Par défaut
    Une question peut-être absurde mais j'y vais!

    Dans le wysiwyg de Patrick la fonction qui retourne le fichier image en base 64, il est possible de splitter sur 255 et 256 , ensuite on revoit le résultat en sans inverse.'ne rigolez pas j'ai prévenu!

  6. #26
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re erreur de raisonnement sur le 255,217
    re
    @cerede
    le test 255,217 est une erreur du moins pas comme ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Sub extract_image_catiapart2()
        Dim OBJstream, BB() As Byte, ok As Boolean, i As Long
        Set OBJstream = CreateObject("ADODB.Stream")    'object utilisé ADODB stream
        OBJstream.Open: OBJstream.Type = 1    ' open with no arguments makes the stream an empty container
        OBJstream.LoadFromFile ("C:\Users\polux\Desktop\Part2.CATPart")    'on load le fichier dans l'object
        BB = OBJstream.Read()    ' on prend directement tout le paquet
        '**************************************
        jpegFile = FreeFile
        Open "C:\Users\polux\Desktop\image.jpg" For Binary Access Write Lock Write As jpegFile
        For i = 0 To UBound(BB) - 1
            If BB(i) = 255 And BB(i + 1) = 216 Then ok = True
            'If l > 1 Then Exit For
            If ok = True Then Put jpegFile, , BB(i)
            If BB(i) = 255 And BB(i + 1) = 217 Then l = l + 1
     
        Next
        Close jpegFile
        MsgBox l
    End Sub
    ' pour Part2.CATPart "" c'est : 'If l > 1 Then Exit For dans celui la ca y est 2 fois
    'pour PartsansCCP.CATPart c'est 'If l = 1 Then Exit For dans celui la ca y est qu'une seule fois

    fait les test tu verra si tu en a un de bon l'autre est de format non valide a la fin
    par contre pour le plus petit le if >1 ne sert a rien forcement alors la boucle va jusqu'au bout mais quelques kilo en trop selon toi

    et quoi que il est fort possible que tes image de 3 kilos soient incomplètes
    pour te donner une idée de la chose fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For i = 0 To UBound(BB) - 10000
    et bien tu verra que l'image a vue humaine a l'air correcte mais en vrai elle ne l'ai pas
    pour preuve mon logiciel ulhead photo ne la reconnais pas :la visionneuse Windows oui!!!!


    conclusion si on a trouvé le début il faut trouver la fin 255,217 la dernière bien sur !!! et cela sans avoir fait une boucle au paravent mais je pense que mieux vaut laisser aller a la fin
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  7. #27
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Heu......
    C'est ce que j'ai dit encore une fois......

    Il est impératif de tester la fin du fichier JPG comme je le fait dans le code de départ ! Le seul moyen de réussir à s'en passer c'est d'avoir la taille précise du fichier image en octets au départ, sinon il faut attendre sa fin !
    Et je le redis les images font 3Ko et sont correctes, testé avec plusieurs visionneuses !

    conclusion si on a trouvé le début il faut trouver la fin 255,217 la dernière bien sur !!! et cela sans avoir fait une boucle au paravent mais je pense que mieux vaut laisser aller a la fin
    Par contre la je comprends pas ce que tu dit ?
    Il ne peut y avoir qu'une seule fin..... C'est un marqueur normalisé FF9D.... Il ne va pas y avoir 10 fin pour 1 seul fichier JPG !
    https://en.wikipedia.org/wiki/JPEG#Syntax_and_structure
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  8. #28
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    cerede dans ton code de depart en gros tu arete quand tu tombe sur 255 et 217

    mais c'est faux
    car comme je te l'ai indiqué dans le précèdent post des fois il y en a 2 de "255,217" et il faut prendre le dernier

    donc pour certain ca marche mais pour d'autre non!!

    voila une solution qui va satisfaire tout le monde
    je décompte en même temps dans la même boucle a l'envers et je memo l'index de fin comme ca a l'envers je suis sur d'avoir le dernier

    et test images font 3 kilos environ
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Sub extract_image_catiapart2()
        Dim OBJstream, BB() As Byte, ok As Boolean, i As Long, f As Long, fini As Long
        Set OBJstream = CreateObject("ADODB.Stream")    'object utilisé ADODB stream
        OBJstream.Open: OBJstream.Type = 1    ' open with no arguments makes the stream an empty container
        OBJstream.LoadFromFile ("C:\Users\polux\Desktop\PartsansCCP.CATPart")    'on load le fichier dans l'object
        BB = OBJstream.Read()    ' on prend directement tout le paquet
        fin = UBound(BB) - 1
        f = UBound(BB) - 1
        '**************************************
        jpegFile = FreeFile
        Open "C:\Users\polux\Desktop\image.jpg" For Binary Access Write Lock Write As jpegFile
        For i = 0 To fin
            If fini = 0 Then
                If BB(f) = 255 And BB(f + 1) = 217 Then fini = f + 2: Debug.Print f & " -- " & fin ' dans le debug on vois la différence de fin et la vrai fin 
            End If
            f = f - 1
            If BB(i) = 255 And BB(i + 1) = 216 Then ok = True
            If ok = True Then Put jpegFile, , BB(i)
            If i = fini And i > 0 Then Exit For
        Next
        Close jpegFile
        MsgBox l
    End Sub
    voila dans la même boucle
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  9. #29
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Pas possible ! As tu été voir le lien wiki sur la structure du JPEG ?
    Si tu trouve deux marqueurs de fin alors tu doit avoir également un autre marque de début..... Et donc deux images !
    Après il est possible en effet qu'une miniature soit encapsulé en plus dans l'image complète, mais de cas c'est bien qu'il y a plusieurs images et il faudrait alors tester les couples SOI/EOI.

    Et en l'occurence dans les 3 CATPart que nous avons en exemple il n'y a bien qu'une seule image à chaque fois et qu'un seul FFD8/FFD9.
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  10. #30
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut
    re
    dans ce cas la mon résultat devrait être faux et donner une image inexploitable et ce n'est pas le cas
    d'autant plus que j'en suis sur puisque quand j'ai essayé d'arrêter au premier et le fichier est inexploitable
    perso dans mes deux exemple de image to binaire ou image to base 64 mes image ne se termine pas toujours par 255,217
    si tu a téléchargé l'exemplaire que je t'ai donné démasque les sheets et tu verra

    ce serait alors une erreur que l'on fait tout les deux de croire que 255,217 sont les fins

    je vais vérifier le nombre de début juste pour voir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  11. #31
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Attention !
    On ne parle ici que de JPEG !!!!!
    Forcément dans ton exemple tu traite du GIF !

    Un JPEG qui ne se fini pas par FFD9 est un JPEG considérer comme corrompu.

    Enfin bref, si tu chercher à remettre en cause la structure du JPEG ben amuse toi

    Tu peux vérifier tout ce que tu veux Dans les CATParts il n'y en a qu'un seul tout comme il n'y a qu'une seule fin
    Je me suis même amusé à extraire les images à la mimines avec éditeur hexa pour en avoir le cœur nette !
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  12. #32
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    âpres vérification

    sur PartsansCCP.CATPart il y a qu'un début "255,216" et 2 fin "255,217"
    cela confirme ce que je viens de dire
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  13. #33
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    ??????????????
    Je viens de vérifier, revérifier et rerevérifier via éditeur héxa et je confirme il n'y a qu'un seul FFD9 dans les fichier !
    Pour PartsansCCP :
    Adresse F1A0 à F1A1

    Et le début FFD8 est à l'adresse E791 à E792

    Je ne sais pas comment tu arrive à en trouver deux..... Tu as un problème quelque part !
    Si en héxa dans le fichier on en trouve qu'un, il ne peux pas y en avoir deux quand tu parcours le truc, sauf si tu as un problème dans le code !
    Repars de la base... Je ne sais pas si c'est les manips que tu fais avec les split ou autre qui génère le truc mais ce n'est pas possible !
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  14. #34
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    heu....
    non dans mes image to... je traite tout format JPG compris
    et comme je viens de te le dire je viens de vérifier sur PartsansCCP.CATPart il y en a bien deux de fin et 1 début
    je ne met pas en doute ce que tu me dis mais alors 255,217 ne sont pas des fins JPG c'est sur ce point que l'on se trompe

    et si je m'arrête au premier 255,217 l'image est inexploitable ca c'est sur
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  15. #35
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Franchement des moi fois tu ma fatigue !
    Tu as la tête très dur (comme moi d'ailleurs )

    Aller un code on ne peux plus simple !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub test()
        Dim intFileNum%, jpegFile%, bytTemp(0 To 1) As Byte
        intFileNum = FreeFile
        Open "C:\Users\toto\Desktop\PartsansCCP.CATPart" For Binary Access Read As intFileNum
        Do While Not EOF(intFileNum)
            bytTemp(0) = bytTemp(1)
            Get intFileNum, , bytTemp(1)
     
            If bytTemp(0) = 255 And bytTemp(1) = 217 Then
                Debug.Print "Fin trouvé"
            End If
        Loop
        Close intFileNum
    End Sub
    Tu verra qu'il n'y a bien qu'une seule fin de trouvé !
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  16. #36
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    Repars de la base... Je ne sais pas si c'est les manips que tu fais avec les split ou autre qui génère le truc mais ce n'est pas possible !
    heu... je split rien !!
    je parcours les bytes c'est tout tu n'a pas du regarder mes dernieres version j'ai virer les tableaux je me sert que de "BB" qui est le paquet de byte renvoyé pas l'object
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  17. #37
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    allez une démo comme ca tu verra que je te dis pas de sottises
    tu n'a qu'a tester tu verra que j'ai raison
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Sub extract_image_catiapart2()
        Dim OBJstream, BB() As Byte, ok As Boolean, i As Long, f As Long, fini As Long
        Set OBJstream = CreateObject("ADODB.Stream")    'object utilisé ADODB stream
        OBJstream.Open: OBJstream.Type = 1    ' open with no arguments makes the stream an empty container
        OBJstream.LoadFromFile ("C:\Users\polux\Desktop\Part2.CATPart")    'on load le fichier dans l'object
        BB = OBJstream.Read()    ' on prend directement tout le paquet
        fin = UBound(BB) - 1
     
        '**************************************
        For i = 0 To fin
                 If BB(i) = 255 And BB(i + 1) = 217 Then fini = fini + 1
            If BB(i) = 255 And BB(i + 1) = 216 Then deb = deb + 1
     
        Next
     
      Debug.Print "nombre de debut : " & deb
      Debug.Print "nombre de fin  : " & fini
     
    End Sub
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  18. #38
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    oui!! avec l'object Scripting on en trouve qu'un effectivement
    cela voudrait dire que l'object en lui même fait déjà un travaille de sélection ce qui expliquerait ca lenteur ,en testant les deux de la même façon que ton exemple déjà on vois la lenteur
    et il serait raisonnable aussi de penser que pour certaines chose il serait pas judicieux de l'utiliser car si il sélectionne une partie du code et pas une autre sans que l'on puisse gérer cet état de fait on risque d'avoir des surprises

    tandis que le adobstream te donne tout le fichier au complet

    ps:
    je viens de tester avec Scripting et adobstream et ben Ya pas photo en terme de vitesse et de loin même
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  19. #39
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Ton explication ne tiens pas la route.
    Explique moi comment dans un éditeur Hexa ou on voit le fichier au complet il n'y à qu'un seul FFD8 et qu'un seul FFD9 et que tu arrive à en trouver deux ????
    Nom : Animation.gif
Affichages : 317
Taille : 456,4 Ko
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  20. #40
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Et bien sur idem avec Part2...
    Nom : Animation.gif
Affichages : 201
Taille : 456,4 Ko
    Tu va finir par me dire qu'on ne peux pas si fier au éditeur hexa ????
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 4 PremièrePremière 1234 DernièreDernière

Discussions similaires

  1. Extraire coordonnées entre deux points dans une image
    Par Pg043 dans le forum Traitement d'images
    Réponses: 4
    Dernier message: 16/01/2009, 09h35
  2. Réponses: 6
    Dernier message: 21/09/2006, 17h33
  3. Etirer une image de fond dans une cellule
    Par dreamanoir dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 13/07/2005, 14h39
  4. Réponses: 4
    Dernier message: 03/05/2005, 09h03
  5. Réponses: 2
    Dernier message: 19/11/2004, 08h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo