Error 52 Dir [Résolu]

Signaler
Messages postés
13
Date d'inscription
lundi 30 juin 2008
Statut
Membre
Dernière intervention
3 septembre 2008
-
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
-
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

14 réponses

Messages postés
13
Date d'inscription
lundi 30 juin 2008
Statut
Membre
Dernière intervention
3 septembre 2008

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
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
"...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 #   
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
42
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  
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
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 #   
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
42
çà 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  
Messages postés
13
Date d'inscription
lundi 30 juin 2008
Statut
Membre
Dernière intervention
3 septembre 2008

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
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
42
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  
Messages postés
13
Date d'inscription
lundi 30 juin 2008
Statut
Membre
Dernière intervention
3 septembre 2008

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
Messages postés
13
Date d'inscription
lundi 30 juin 2008
Statut
Membre
Dernière intervention
3 septembre 2008

et je viens d'essayer de changer la date de naissance et ça ne change rien
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
13
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
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
42
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....
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
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
Messages postés
13
Date d'inscription
lundi 30 juin 2008
Statut
Membre
Dernière intervention
3 septembre 2008

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) ?


 
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
13
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