Error 52 Dir [Résolu]

cs_StanG 13 Messages postés lundi 30 juin 2008Date d'inscription 3 septembre 2008 Dernière intervention - 31 août 2008 à 19:51 - Dernière réponse : cs_Exploreur 4824 Messages postés lundi 11 novembre 2002Date d'inscription 15 novembre 2016 Dernière intervention
- 1 sept. 2008 à 07:53
Bonjour,

J'ai un petit soucis avec un prog en VB6.
Pour faire bref, j'ai créé un petit logiciel de gestion d'élèves et sur chaque fiche elève, je fais apparaître leur photo stockée dans un dossier sur le c:.
Dans mes codes, j'ai écrit:
If Dir$(chemindelaphoto) <> vbNullString then .....affichage
et
If Dir$(chemindelaphoto) = vbNullString then ....jpg de remplacement

Ca fontionné jusqu'à ce que j'ajoute un élève (et je sais pas pourquoi lui). Quand je clique dessus, j'ai comme erreur:
Error 52 Bad file name or number.

Je ne pense pas que ce soit une erreur dans le chemindelaphoto, car si il n'existe pas, j'ai une image qui doit s'intaller à la place de la photo. Et de toute façon, tout fonctionne bien pour les autres. Il y a que pour lui.
Dans le chemindelaphoto, il n'y a aucun caractère bizarre.

Je ne sais donc pas quoi faire.

Pouvez vous m'aider...

Merci
Afficher la suite 

14 réponses

Répondre au sujet
cs_StanG 13 Messages postés lundi 30 juin 2008Date d'inscription 3 septembre 2008 Dernière intervention - 1 sept. 2008 à 07:05
+3
Utile
Rebonjour,

Ca y est j'ai trouvé pourquoi et c'est très subtile
En fait, en faisant un msgbox, je me suis apercu que pour cet élève seulement après le nom et prénom, la date de naissance était à la ligne dans la msgbox, ce qui signifie qu'il devait y avoir dans mon fichier texte, un caractère spéciale "invisible" qui lui disait d'aller à la ligne, et je pense que c'est pour ça que le chemin d'accès était "mauvais".
Mais ca ne ce voyait pas quand je cherchais l'erreur sur mon fichier texte.

De plus, j'ai changé en utilisant les codes suivants:
Dim FSO As Object
Set FSO = CreateObject("Scripting.Filesystemobject")If FSO.FileExists(cheminaccès) 0 Then Picture1.Picture LoadPicture("c:\logicielPP\Icones\AjoutPhoto.Jpg")
If FSO.FileExists(cheminaccès) <> 0 Then Picture1.Picture = LoadPicture(cheminaccès)

Je pense que ca sera plus stable que Dir$()

Merci de votre aide
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_StanG
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 31 août 2008 à 20:22
0
Utile
"...Dans le chemindelaphoto, il n'y a aucun caractère bizarre..."

N'y aurait-il pas un ou des espaces par hasard ???

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #   
Commenter la réponse de cs_casy
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 31 août 2008 à 20:29
0
Utile
casy
-> si oui j'te prépare le terrain ^^
http://www.codyx.org/snippet_recuperer-chemin-fichier-format-short-meme-si-fichier_443.aspx

nb : çà sent malgré tout le caractère spécial :)
Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
Commenter la réponse de PCPT
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 31 août 2008 à 20:31
0
Utile
C'est pas cette solution là que j'envisagais en cas de réponse positive

Moi je voyais plutôt d'encadrer le chemin de "
 

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #   
Commenter la réponse de cs_casy
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 31 août 2008 à 20:44
0
Utile
çà ne fonctionnerait pas avec les autres aussi...
j'parie pour un "" dans le nom, ou un extension différente que celle considérée

faites vos jeux
Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
Commenter la réponse de PCPT
cs_StanG 13 Messages postés lundi 30 juin 2008Date d'inscription 3 septembre 2008 Dernière intervention - 31 août 2008 à 21:00
0
Utile
Alors dans le chemin il y a:


c:\logicielPP\InfosEleves\Lille 2008\Photos\nom prémon datenaissance.jpg

nom, prénom et date de naissance sont séparés par un espace
Commenter la réponse de cs_StanG
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 31 août 2008 à 21:31
0
Utile
ok pour ne pas indiquer en public le nom et prénom, mais peux-tu écrire la date de naissance stp?

un simple debug.print altéré
Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
Commenter la réponse de PCPT
cs_StanG 13 Messages postés lundi 30 juin 2008Date d'inscription 3 septembre 2008 Dernière intervention - 31 août 2008 à 22:21
0
Utile
la date de naissance est 21111988
je note les dates comme ça, mais ce que je comprend pas c'est que avec les autres élèves en utilisant le même format ca fonctionne
Commenter la réponse de cs_StanG
cs_StanG 13 Messages postés lundi 30 juin 2008Date d'inscription 3 septembre 2008 Dernière intervention - 31 août 2008 à 22:24
0
Utile
et je viens d'essayer de changer la date de naissance et ça ne change rien
Commenter la réponse de cs_StanG
cs_Exploreur 4824 Messages postés lundi 11 novembre 2002Date d'inscription 15 novembre 2016 Dernière intervention - 31 août 2008 à 22:44
0
Utile
Salut à tous,

Essaye aussi pour voir, de changer le nom et prénom....Pi fait un msgbox de chemindelaphoto, et colle le résultat(en masquant le nom et prénom) ici.

Et "je pense" que tu n'as pas vraiment besoin de faire deux test d'affilés mais plutôt un truc du genre  :

If Dir$(chemindelaphoto) <> VbNullString then
   'Affichage
Else
  'Autre action
End If

Et au cas particulier, de vérifier peut-être l'extention de ton fichier image dans le cas d'un affichage dans une PictureBox
A+
Exploreur

 Linux a un noyau, Windows un pépin
Commenter la réponse de cs_Exploreur
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 31 août 2008 à 22:44
0
Utile
l'image en question, tu arrives à la visionner avec mspaint?  le debug.print te donne le bon chemin? quelle est l'extension?
quel est ton code de chargement, donc avec la ligne exact du message d'erreur?

etc... tout ce qui pourrait être source d'information
ainsi que les accents etc....
Commenter la réponse de PCPT
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 1 sept. 2008 à 03:19
0
Utile
utilises la fonction décrite ci-dessous, tu n'auras plus ton soucis, je pense.
Dir$ est à conserver pour énumérer le contenu d'un répertoire uniquement.
Il plante trop facilement pour le reste, notamment les chemins réseaux inexistants



Public Declare Function

GetFileAttributes

Lib
"kernel32.dll"

Alias
"GetFileAttributesA" (

ByVal
lpFileName

As String
)

As Long





Public Const
INVALID_FILE_ATTRIBUTES

As Long
= &HFFFFFFFF


Public Function
DoesExist(

ByRef
vsPath

As String
)

As Boolean


    DoesExist = (GetFileAttributes(vsPath) <> INVALID_FILE_ATTRIBUTES)


End Function








http://www.codyx.org/snippet_savoir-si-fichier-existe_65.aspx#208






Renfield





Admin CodeS-SourceS

- MVP Visual Basic
Commenter la réponse de Renfield
cs_StanG 13 Messages postés lundi 30 juin 2008Date d'inscription 3 septembre 2008 Dernière intervention - 1 sept. 2008 à 06:39
0
Utile
voila les codes que j'utilise :
cheminaccès = "c:\logicielPP\InfosEleves" & nometab1 & " " & anneetmp & "\Photos" & UCase(tableaugeneral(numerosectiontmp - 1, Indexbouton, 2)) & " " & tableaugeneral(numerosectiontmp - 1, Indexbouton, 3) & " " & dateeleve & ".jpg"If Dir$(cheminaccès) vbNullString Then Picture1.Picture LoadPicture("c:\logicielPP\Icones\AjoutPhoto.Jpg")
If Dir$(cheminaccès) <> vbNullString Then Picture1.Picture = LoadPicture(cheminaccès)

nometab étant le nom de l'établissement, anneetmp, l'année, et le tableau dynamique possède le nom, prénom et date de naissance.


Concernant la solution de Renfield, quand j'essaie de coller Public const, il me met la ligne en rouge.


Et je ne vois pas comment utiliser la fonction après.


est-ce que je dois écrire DoesExit(chemindelaphoto) ?


 
Commenter la réponse de cs_StanG
cs_Exploreur 4824 Messages postés lundi 11 novembre 2002Date d'inscription 15 novembre 2016 Dernière intervention - 1 sept. 2008 à 07:53
0
Utile
Salut,

Evite de mettre des accens sur le nom de tes variables...c'est risque d'erreur...

A+
Exploreur

 Linux a un noyau, Windows un pépin
Commenter la réponse de cs_Exploreur

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.