PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 2024 → ajouter des images issues d'un répertoire dans une BD
ajouter des images issues d'un répertoire dans une BD
Iniciado por MMEITE, jul., 23 2021 1:59 PM - 5 respostas
Publicado em julho, 23 2021 - 1:59 PM
Salut les amis,

j'ai extrait des données dans un fichier Excel concernant des agents. Lesdits agents ont leur photo dans un répertoire que je récupère avec le code suivant.



Myfilename est une chaîne
//Chemin est une chaîne

HLitPremier(AGENT2)
TANTQUE PAS HEnDehors(AGENT2)

SI AGENT2.photo <> "" ET Droite(AGENT2.photo, 3)~~"jpg" ALORS
Myfilename = AGENT2.photo
HAttacheMémo(AGENT2,Photo_Imag,"C:\sauvegarde\"+Myfilename+".jpg",hMémoImg)
HOuvre(AGENT2)
HModifie(AGENT2)
//Info("enregistrement terminé pour "+Myfilename)
HLitSuivant(AGENT2)
FIN
SI AGENT2.photo <> "" ET Droite(AGENT2.photo, 3)~~"png" ALORS
Myfilename = AGENT2.photo
HAttacheMémo(AGENT2,Photo_Imag,"C:\sauvegarde\"+Myfilename+".png",hMémoImg)
HOuvre(AGENT2)
HModifie(AGENT2)
//Info("enregistrement terminé pour "+Myfilename)
HLitSuivant(AGENT2)
FIN

FIN
Info("fin des importations d'image")


mon souci est que lorsque la première partie de mon code liée au fichier .jpg rencontre une image d'une autre extension un message d'erreur s'affiche.

le message d'erreur est celui là:

Erreur à la ligne 20 du traitement Clic sur BTN_vrai_test.
Vous avez appelé la fonction HModifie.
Impossible d'ouvrir le fichier <C:\sauvegarde\ZOTTOUASAMAGUEULEON_photo_1582222718.png.png>.

Détail de l'erreur système :

Le fichier spécifié est introuvable.
(2)

----- Informations techniques -----

Projet : EDIT_BADGE

Appel WL :
Traitement de 'Clic sur BTN_vrai_test' (FEN_Fiche_Importation2.BTN_vrai_test), ligne 20, thread 0
Fonction 'HModifie', syntaxe 1

Que s'est-il passé ?
Impossible d'ouvrir le fichier <C:\sauvegarde\ZOTTOUASAMAGUEULEON_photo_1582222718.png.png>.

Code erreur : 70003
Niveau : erreur fatale
Code erreur WD55 : 3

Code d'erreur système : 2
Message d'erreur système :
Le fichier spécifié est introuvable.

Dump de l'erreur du module 'wd230hf.dll' (23.0.31.0).
Informations de débogage :
##(IXStream)-Handle=<FFFFFFFF>##
Fonction (7,16)
Informations supplémentaires :
EIT_SRCFILE : <C:\sauvegarde\ZOTTOUASAMAGUEULEON_photo_1582222718.png.png>
EIT_LOGICALTABLENAME : <AGENT2>
EIT_PILEWL :
Clic sur BTN_vrai_test (FEN_Fiche_Importation2.BTN_vrai_test), ligne 20
EIT_DATEHEURE : 23/07/2021 11:55:17
EIT_TYPE_WDFILE : <2>
EIT_IDCODE : <18>

Assistance


quand je fais un tri manuel en ne mettant que des fichiers .jpg, tout se passe bien
Membro registado
945 mensagems
Popularité : +53 (63 votes)
Publicado em julho, 23 2021 - 3:07 PM
Bonjour,

Plus simple

HLitPremier(AGENT2)
TANTQUE PAS HEnDehors(AGENT2)
SI AGENT2.photo <> "" ALORS
sExtension est un chaîne ANSI = Minuscule(fExtraitChemin(AGENT2.photo,fExtension))
Myfilename = AGENT2.photo
SI fFichierExiste("C:\sauvegarde\"+Myfilename+[sExtension])
HAttacheMémo(AGENT2,Photo_Imag,"C:\sauvegarde\"+Myfilename+[sExtension],hMemoImg)
HOuvre(AGENT2)
HModifie(AGENT2)
FIN
//Info("enregistrement terminé pour "+Myfilename)
HLitSuivant(AGENT2)
FIN

FIN
Info("fin des importations d'image")
Publicado em julho, 23 2021 - 4:56 PM
Merci beaucoup;
je teste et je vous reviens.
Publicado em julho, 26 2021 - 2:48 AM
je vous remercie pour le code mais il ne marche pas. je ne sais pas si c'est moi mais il fait moins bien que mon code précèdent.
Lorsqu'il fini tout le traitement, il n'y a qu'une seule photo enregistrée et je n'arrive pas à savoir pourquoi.

Merci d'avance à tous pour vos éventuelles aides
Membro registado
34 mensagems
Popularité : +4 (4 votes)
Publicado em julho, 26 2021 - 3:17 PM
Bonjour,
Avant de pomper un code, je te conseille de reprendre pas à pas ton code pour le comprendre et comprendre tes erreurs.
Je doute que ton code ne plante pas quand tu rencontres un fichier .jpg.
Je décris ton code ligne par ligne pour expliquer ton erreur :

Pour tous les enregistrement de AGENT2.
HLitPremier(AGENT2)
TANTQUE PAS HEnDehors(AGENT2)
...
HLitSuivant(AGENT2)
FIN


Si la rubrique AGENT2.photo contient une donnée et que cette donnée se termine par "jpg". (Exemple : TOTO.jpg)
SI AGENT2.photo <> "" ET Droite(AGENT2.photo, 3)~~"jpg" ALORS


Tu initialises la variable Myfilename par le contenu de AGENT2.photo.
Myfilename = AGENT2.photo



Tu ajoutes dans AGENT2.PHOTO_IMAG le fichier en rajoutant ".jpg". Avec mon exemple : "C:\sauvegarde\TOTO.jpg.jpg".
Le fichier n'existe pas, d'où l'erreur Windev que tu auras lors de l'enregistrement. (Impossible d'ouvrir le fichier <C:\sauvegarde\ZOTTOUASAMAGUEULEON_photo_1582222718.png.png>.)
HAttacheMémo(AGENT2,Photo_Imag,"C:\sauvegarde\"+Myfilename+".png",hMemoImg)


Aucune idée de la raison de code ici :
HOuvre(AGENT2)


Tu enregistres l'enregistrement de AGENT2
HModifie(AGENT2)


Tu refais la même chose en .png avec les mêmes problèmes.

Bref, si tu n'as pas besoin de vérifier l'extention.
sChemin est une chaîne=ComplèteRep("C:\sauvegarde")
Pour TOUT agent2
SI fFichierExiste(sChemin+AGENT2.photo) ALORS
HAttacheMémo(AGENT2,Photo_Imag,sChemin+AGENT2.photo,hMemoImg)
HModifie(AGENT2)
FIN
FIN
Publicado em julho, 29 2021 - 3:13 AM
Mon code n'a aucun souci lorsqu'il rencontre les fichiers jpg c'est lorsqu'il rencontre un fichier png