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

VB 6 et antérieur Discussion :

Name AS avec espace


Sujet :

VB 6 et antérieur

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Juin 2004
    Messages : 118
    Points : 48
    Points
    48
    Par défaut Name AS avec espace
    Bonjour,

    j'ai des noms de répertoires que je dois renommer. Le pb, c'est que le nom initial comporte des espaces. Du coup, il me répond que j'ai un pb dans le chemin d'accès au répertoire en question.

    Quelle manip me peremttrait de renommer ce répertoire?

    merci

  2. #2
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    C'est qui "il" ?
    Tu peux nous montrer ton code stp ?
    Pour VB6 : N'oubliez pas d'aller voir la FAQ et les Tutoriels
    Vous trouvez une reponse particulierement utile ? Votez pour !

  3. #3
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 535
    Points
    5 535
    Par défaut
    Bonjour,

    Je crois, prodi 64 , que tu tires tes conclusions trop rapidement ! (pas bon en développement, de tirer des conclusions hatives !!!)

    Ce n'est pas l'espace, qui est responsable, mais autre chose ou une conjugaison d'autres choses ...

    Tu en veux la preuve ?

    La voilà :

    Tu crées un répertoire c:\a aa

    puis lu lances ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Command1_Click()
      Name "c:\a aa" As "c:\a ab"
    End Sub
    Alors ? Il y a bien un espace dans les deux noms, pourtant, hein ?...

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Juin 2004
    Messages : 118
    Points : 48
    Points
    48
    Par défaut
    Bonjour,

    je confirme votre impression, ce n'est pas dû à l'espace dans le nom.

    Mon code est un peu long mais, je renomme le répertoire avec des veleurs tirées d'un fichier Excel. La syntaxe de renommage se présente ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Debug.Print (Dir1.List(l) & " As " & dossier & "\" & f.Cells(i, CInt(repertoire.Text)).Value)
        anc_dos = Dir1.List(l)
        nv_dos = dossier & "\" & f.Cells(i, CInt(repertoire.Text)).Value
        Name anc_dos As nv_dos
    Le debug.print au départ est tout à fait bon, il me donne les bons chemin d'accès...

  5. #5
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    Quel est le code / message d'erreur exact que tu as ?
    Pour VB6 : N'oubliez pas d'aller voir la FAQ et les Tutoriels
    Vous trouvez une reponse particulierement utile ? Votez pour !

  6. #6
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 535
    Points
    5 535
    Par défaut
    Trop de choses restent ici inconnues :

    1) on aimerait bien voir les textes exacts affichés au debug.print (chemin complet de l'anvien fichier et chemin complet du nouveau fichier)

    Je te rappelle que les deux doivent être sur le même lecteur (voir ton aide en ligne à ce propos

    2) je te rappelle également (à tout hasard) que Name as ne peut s'appliquer à un fichier en cours d'ouverture (ouvert)

    Et on ne sait rien de ces choses essentielles, dont tu ne nous parles pas du tout...

  7. #7
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    C'est un peu pour ça que je posais la question, car je pense que prodi cherche à renommer le répertoire contenant le fichier Excel qui est ouvert et là effectivement, ça ne va pas marcher.
    Pour VB6 : N'oubliez pas d'aller voir la FAQ et les Tutoriels
    Vous trouvez une reponse particulierement utile ? Votez pour !

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Juin 2004
    Messages : 118
    Points : 48
    Points
    48
    Par défaut
    Le message d'erreur 75 est : Erreur dans le chemin d'accès

    Voici le résultat du Debug :
    F:\run01\2MI1188 As F:\run01\MARTRE_LA_3PP965

    Normalement les fichiers seront sur le réseau et non sur le disque local. Mais j'ai essayé de les mettre sur une partition locale pour tester et ça marche pas non plus.

    Les fichiers ne sont pas ouverts. Ils sont placés dans une FileList car eux aussi sont renommés. Une fois qu'ils sont renommés, je souhaite renommer le répertoire parent et c'est là que j'ai un pb.

    S'il vous fait d'autres éléments, pas de pb...

    Voici un bout du code plus exhaustif :
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    Set dossier = fso.GetFolder(source.Text)
    Dir1.Path = dossier
    l = 0
    Do While l < Dir1.ListCount
        sousdossier = Dir1.List(l)
        nomdos = Split(sousdossier, "\")
        While UCase(f.Cells(i, CInt(cote.Text)).Value) <> UCase(nomdos(UBound(nomdos))) Or f.Cells(i, CInt(cote.Text)).Value = ""
        Debug.Print UCase(nomdos(UBound(nomdos)))
            i = i + 1
        Wend
        inc = deb_inc.Text
        nb = 0
        File1.Path = sousdossier
        For j = 0 To File1.ListCount - 1
            increment = ""
            For k = Len(inc) To CInt(digits.Text) - 1
                increment = increment & "0"
            Next
            increment = increment & inc
            DoEvents
            antenomf = File1.List(j)
            nomf = f.Cells(i, CInt(fiche.Text)).Value & "_" & increment & "." & Split(antenomf, ".")(1)
            Name sousdossier & "\" & antenomf As sousdossier & "\" & nomf
            Debug.Print ("Name " & antenomf & " As " & sousdossier & "\" & nomf)
            If Dir(sousdossier & "\" & nomf, vbHidden) = "" Then
                MonFic.WriteLine ("PB sur renommage du fichier " & sousdossier & "\" & antenomf)
            End If
            nb = nb + 1
            inc = inc + 1
        Next
        sousdossier = Dir1.List(l + 1)
        'renommage cote
        Debug.Print (Dir1.List(l) & " As " & dossier & "\" & f.Cells(i, CInt(repertoire.Text)).Value)
        anc_dos = Dir1.List(l)
        nv_dos = dossier & "\" & f.Cells(i, CInt(repertoire.Text)).Value
        Name anc_dos As nv_dos
        If Dir(dossier & "\" & f.Cells(i, CInt(repertoire.Text)).Value) = "" Then
            MonFic.WriteLine ("PB sur renommage du réperoire " & Dir1.List(l))
        End If
        l = l + 1
    Loop

  9. #9
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 535
    Points
    5 535
    Par défaut
    C'est drôle, tiens ...

    Moi je vois un répertoire ouvert avec FSO !!!

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Juin 2004
    Messages : 118
    Points : 48
    Points
    48
    Par défaut
    Avec des commentaires c'est mieux :

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    Set dossier = fso.GetFolder(source.Text)
    Dir1.Path = dossier
    l = 0
    'parcours de la liste de répertoires à renommer
    Do While l < Dir1.ListCount
        sousdossier = Dir1.List(l)
        nomdos = Split(sousdossier, "\")
        'recherche dans l'execl de la ligne correpondant au répertoire en question
        While UCase(f.Cells(i, CInt(cote.Text)).Value) <> UCase(nomdos(UBound(nomdos))) Or f.Cells(i, CInt(cote.Text)).Value = ""
        Debug.Print UCase(nomdos(UBound(nomdos)))
            i = i + 1
        Wend
        'initialisation de l'incrément et du nombre de fichiers traités
        inc = deb_inc.Text
        nb = 0
        'mise à jour du FileList suivant le répertoire parent en question
        File1.Path = sousdossier
        For j = 0 To File1.ListCount - 1
            'calcul de l'incrément du nom de fichier sur un nombre de digits souhaité
            increment = ""
            For k = Len(inc) To CInt(digits.Text) - 1
                increment = increment & "0"
            Next
            increment = increment & inc
            DoEvents
            'renommage des fichiers avec le prefixe dans execl et l'incrément calculé
            antenomf = File1.List(j)
            nomf = f.Cells(i, CInt(fiche.Text)).Value & "_" & increment & "." & Split(antenomf, ".")(1)
            Name sousdossier & "\" & antenomf As sousdossier & "\" & nomf
            Debug.Print ("Name " & antenomf & " As " & sousdossier & "\" & nomf)
            'verification de l'existence dui nouveau nom de fichier
            If Dir(sousdossier & "\" & nomf, vbHidden) = "" Then
                MonFic.WriteLine ("PB sur renommage du fichier " & sousdossier & "\" & antenomf)
            End If
            'mise à jour de l'incrément et du compteur de fichiers
            nb = nb + 1
            inc = inc + 1
        Next
        sousdossier = Dir1.List(l + 1)
        'renommage répertoire
        Debug.Print (Dir1.List(l) & " As " & dossier & "\" & f.Cells(i, CInt(repertoire.Text)).Value)
        anc_dos = Dir1.List(l)
        nv_dos = dossier & "\" & f.Cells(i, CInt(repertoire.Text)).Value
        Name anc_dos As nv_dos
        'verification du renommage du repertoire
        If Dir(dossier & "\" & f.Cells(i, CInt(repertoire.Text)).Value) = "" Then
            MonFic.WriteLine ("PB sur renommage du réperoire " & Dir1.List(l))
        End If
        'passage au répertoire suivant
        l = l + 1
    Loop

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Juin 2004
    Messages : 118
    Points : 48
    Points
    48
    Par défaut
    Ce répertoire est le répertoire racine il n'est pas à renommer. ce sont seulement ses sous-dossiers qui le seront...

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Juin 2004
    Messages : 118
    Points : 48
    Points
    48
    Par défaut
    Qq'un a une idée?

  13. #13
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    As tu fais l'essai sans utiliser fso ?
    Pour VB6 : N'oubliez pas d'aller voir la FAQ et les Tutoriels
    Vous trouvez une reponse particulierement utile ? Votez pour !

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Juin 2004
    Messages : 118
    Points : 48
    Points
    48
    Par défaut
    Oui j'ai changé la ligne Set dossier = fso.GetFolder(source.Text) par dossier=source.text

    et ç'est pareil...

  15. #15
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    Bon, j'avoue être un peu paumé mais je reste persuadé qu'il y a quelquechose d'ouvert.
    Pour essai, peux tu mettre un point d'arrêt au début de ta procédure de renommage et essaye de renommer manuellement sous l'explorateur de fichier un de tes répertoires.
    1/ Si ça coince c'est que l'origine du problème se trouve en amont
    2/ Si ça coince pas, avance ligne à ligne (ou quasi) et fais à chaque fois un essai manuel de renommage.
    Pour VB6 : N'oubliez pas d'aller voir la FAQ et les Tutoriels
    Vous trouvez une reponse particulierement utile ? Votez pour !

  16. #16
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 535
    Points
    5 535
    Par défaut
    Excuse-moi, mais quand je lis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     MonFic.WriteLine ("PB sur renommage du fichier " & sousdossier & "\" & antenomf)
    Je me dis (je suis fou) que tu écris ou peux écrire dans un fichier.
    Je me dis qu'un fichier est donc ouvert
    Je me dis enfin que si ce fichier est dans le répertoire à renommer, le renommage n'est pas possible (on ne peut renommer un répertoire dont un des fichiers est en cours d'utilisation).

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Juin 2004
    Messages : 118
    Points : 48
    Points
    48
    Par défaut
    Visiblement tu as raison. Quand le prog est arrêté là où il bug, je ne peux pas le renommer manuellement (ressource utilisée par un programme ou une autre personne)

    Mais je vois vraiment pas où...

  18. #18
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 535
    Points
    5 535
    Par défaut
    Hé Hé !

    Bon ...

    Va donc savoir maintenant à quel moment l'erreur a été commise.
    Car si elle a été commise auparavant, même si ton appli a été fermée ==>> tu auras toujours un "drapeau" Windows tant que Windows ne sera pas lui même fermé !

    Je te donne le conseil de :

    1) fermer Windows
    2) redémarrer Windows
    3) avant t(oute autre chose : voir si maintenant tu peux renommer manuellement (depuis l'explorateur)
    4) si oui : faire gaffe à chacune des lignes de ton code (pour ne pas recommencer...)
    5) lancer ton appli
    6) aller immédiatement vérifier qu'après ce lancement, tu peux renommer manuellement et :
    a) si oui : tu es sorti de ton problème
    b) si non : tu as soit un problème de code de ton appli, soit un problème de droits, soit un problèmes d'attribut ...

    Bonne recherche et tests...

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Juin 2004
    Messages : 118
    Points : 48
    Points
    48
    Par défaut
    Ca y est, j'ai trouvé.

    J'ai appliqué ta méthode et j'ai vu que cela venait du test d'existence du fichier renommer qui bloquait le répertoire parent.

    j'ai donc changer la syntaxe par celle-ci :
    If FSys.FileExists(sousdossier & "\" & nomf) Then

    et maintenant ça marche.

    Merci à tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 16
    Dernier message: 07/04/2005, 11h36
  2. Affichage Données avec Espace ds Zone Texte
    Par dai.kaioh dans le forum ASP
    Réponses: 2
    Dernier message: 22/02/2005, 16h43
  3. pb insertion avec espaces
    Par devalender dans le forum SQL
    Réponses: 5
    Dernier message: 06/09/2004, 15h42
  4. Problème Locate avec espaces
    Par Clezio dans le forum Bases de données
    Réponses: 2
    Dernier message: 10/03/2004, 19h06
  5. shellexecute + chemin avec espace
    Par abignon dans le forum MFC
    Réponses: 2
    Dernier message: 26/01/2004, 22h15

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