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 :

Besoin d'aide pour supprimer des fichiers et pour la lecture du contenu de repertoire


Sujet :

VB 6 et antérieur

  1. #1
    Membre du Club Avatar de Tyrael62
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 90
    Points : 54
    Points
    54
    Par défaut Besoin d'aide pour supprimer des fichiers et pour la lecture du contenu de repertoire
    Bonjour ,
    Je développe un navigateur web avec les fonctionnalités les plus courantes dont l'ajout de Favoris.Cette partie là est bien réalisé,les liens des favoris s'ajoute bien dans mon repertoire Liens,mais le hic intervient quand je lis mes liens dans ce dit repertoire!Il me lit bien les 2 premiers liens de la premiere ligne ,mais arrivé au 3eme lien situé en 2eme ligne dans le repertoire , il me génére une erreur lors de sa lecture et me le transforme en fichier de type Fichier que je ne peux supprimer ensuite.

    Voici la partie de code correspondante à la lecture des liens dans le répertoire
    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
     
    Private Sub Favoris_bar_ButtonClick(ByVal Button As MSComctlLib.Button)
     
    Dim objShell As Shell32.Shell
    Dim objFolder As Shell32.Folder
    Dim colItems As Shell32.FolderItems
    Dim objItem As Shell32.FolderItem
     
    Set objShell = CreateObject("Shell.Application")
    Set objFolder = objShell.NameSpace(App.Path & "\Liens")
    Set colItems = objFolder.Items
    i = 0
    For Each objItem In colItems
     
      i = i + 1
     
      If Button.Index = i Then
         Navigator.Navigate2 objItem.GetLink.Path
      End If
     
    Next
     
    End Sub
    Je comprends pas pourquoi il plante a ce niveau , j'ai vraiment besoin d'aide car là je vois pas trop ce que je peux faire de plus!
    Je vous remercie d'avance.a bientot

  2. #2
    Membre du Club Avatar de Tyrael62
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 90
    Points : 54
    Points
    54
    Par défaut
    J'ai réussi à supprimer les fichier de Type Fichier avec Total commander mais j'arrive toujours pas à lire le 3ème lien de mon repertoire!Et à ce que je vois , vous êtes aussi incompétent que moi dans ce domaine!

  3. #3
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Tu crois ?
    Commences par rechercher (FAQ) !
    Le reste est tout juste adaptation à ton cas ...
    Mais je n'ai pas l'intention de tout faire pour toi !
    D'autres, peut-être ?
    profites-en pour nous expliquer ce qu'est "un Fichier type Fichier" ! COMPRENDS PAS CE CHARABIA LA !

  4. #4
    Membre éclairé
    Avatar de Catbull
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    542
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 542
    Points : 854
    Points
    854
    Par défaut
    Citation Envoyé par Tyrael62
    Et à ce que je vois , vous êtes aussi incompétent que moi dans ce domaine!
    Merci, ca fait toujours plaisir de tomber sur de telles marques d'attention au grès de nos lectures forumesques.

    Malheureusement les flatteries ne m'ont jamais incitées à donner un coup de main. je te souhaites néanmoins bonne chance dans ton entreprise.

  5. #5
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par Tyrael62
    J'ai réussi à supprimer les fichier de Type Fichier avec Total commander mais j'arrive toujours pas à lire le 3ème lien de mon repertoire!Et à ce que je vois , vous êtes aussi incompétent que moi dans ce domaine!
    désolé je ne connaissai pas l'existence deces lignes :
    Il me lit bien les 2 premiers liens de la premiere ligne ,mais arrivé au 3eme lien situé en 2eme ligne dans le repertoire ,
    puis un fichier de type fichier ??

    et ce fameux
    If Button.Index = i ? d'ou il sort.

  6. #6
    Membre du Club Avatar de Tyrael62
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 90
    Points : 54
    Points
    54
    Par défaut
    Pour ce qui est du fichier de Type Fichier , c'est la première que je le rencontre , j'avais pas encore vu cela jusqu'à aujourd'hui!Mais en gros , dans mon répertoire Liens , une fois que je lisais le 3ème lien , il me transformer par exemple : "Raccourci vers Google" de type Raccourci Internet en "Raccourci vers Google" de Type Fichier qui devanait aussitôt un fichier inacessible , et impossible à supprimier ou à déplacer avec les méthodes standard.

    Pour ce qui est de mon "If Button.Index = i Then" , il vient de ma Toolbar Favoris qui me permet d'ajouter dynamiquement un bouton de raccourci internet dans ma barre de favoris.C'est pour cela que j'en récupére l'index pour que si l'index du bouton correspond au numero de fichier parcouru alors il lance le lien associé à ce Fichier de raccourci.Et comme je le précisais précédemment , il me lance bien les 2 premiers liens qui se situe sur la premiere dans le repertoire et une fois qui passe à la seconde ligne , le navigateur plante et transforme mes fichiers.

    ex : Repertoire Liens

    1er lien : Raccourci vers google 2ème lien : Raccourci vers developpez

    3eme lien : Raccourci vers ABC Tabs

    Voici vite fait comment je vois l'organisation de mon répertoire Liens à mon écran,donc une fois qui passe à la ligne suivante et que je clique sur le lien il me génére cette erreur :"Run-time error '-2147024894(80070002)"
    Automation error
    Veuillez excuser mon arrogance de mon premier message mais çà fait 3 fois que je poste ce sujet pour ce problème et personne jusqu'à aujourd'hui ne m'avait répondu , je ne demande à ce que vous me donner le code tout fait car c'est pas la meilleure manière d'apprendre mais voilà je suis face à un problème que je ne puis résoudre de part mon inexpérience dans ce langage de programmation et que sincèrement cette méthode que j'utilise devrait me lire tout les raccourci de mon répertoire!J'avais pensais au début à une solution plus simpliste qui consistait à l'ajout de chaque favoris , de placer dans la description du bouton de la toolbar le lien du site pour pouvoir le lire ensuite dans cet évènement mais VB6 ne m'offre aucunement cette possibilité.

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Citation Envoyé par Tyrael62
    Et à ce que je vois , vous êtes aussi incompétent que moi dans ce domaine!
    Bien gentils ceux qui continueront à t'aider

  8. #8
    Membre habitué
    Inscrit en
    Mai 2002
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 163
    Points : 173
    Points
    173
    Par défaut
    pour faire cour, un type "fichier" est tout simplement un fichier sans extension ... (et il y a belle lurette que çà existe).

    de plus, ton code me parrais suspect sous plusieur angle ...
    tu as en paramètre un objet "button", donc tu connais son index, tu as une collection de lien (on va dire), mais tu fais tout de même une recherche (alors qu'il te suffirai de tester si button.index n'est pas supérieur a la taille de ta collection, et si ce n'est pas le cas, Navigator.Navigate2 colItems(Button.Index).GetLink.Path
    enfin, tu fais un parcours qui ne s'arrête pas même si le lien a été trouvé

    toutefois, je ne voit rien dans ton code qui puisse modifié l'extension du fichier, execpté si l'objet "navigator" le fais tout seul sur une erreur lors d'un Navigator.Navigate2 ...

    excuse accepté (difficilement quand même)
    La théorie, c'est quand on sait tout et que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi !
    (Albert Einstein)

  9. #9
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Bonjour Tyrael !

    Je vais essayer de t'aider cet après-midi, mais dois déjà te poser quelques questions .
    Je relis tout depuis le début d'abord.
    N'interviens pas pour ne pas alourdir ce sujet, STP !
    1) quand tu dis :
    Cette partie là est bien réalisé,les liens des favoris s'ajoute bien dans mon repertoire Liens,mais le hic intervient quand je lis mes liens dans ce dit repertoire!Il me lit bien les 2 premiers liens de la premiere ligne ,mais arrivé au 3eme lien situé en 2eme ligne dans le repertoire , il me génére une erreur lors de sa lecture et me le transforme en fichier de type Fichier que je ne peux supprimer ensuite.
    Je suppose que ton 1et problème est la lecture de tout le répertoire, n'est pas ?
    Ce répertoire est-il composé uniquement de fichiers ? Quelle est leur extension ? Toujours la même ?
    A toi pour cette 1ère question (j'attends ta réponse)

  10. #10
    Membre du Club Avatar de Tyrael62
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 90
    Points : 54
    Points
    54
    Par défaut
    J'ai trouvé l'erreur , je vous avez pas mis à disposition la procédure de création du fichier , c'est de là que viens l'erreur!En faite , j'ai procédé à divers test pour me rendre compte que lors de l'écriture du raccourci internet , si le nom de ce fichier était trop long , il lui affecte aucune extension et ce fichier est illisible!Je pense que pour palier à ce problème , je devrais m'en sortir!Merci pour ton aide , j'ai remanier le code de manière plus cohérente même si çà fonctionner , çà sera plus clair et plus logique à expliquer si je passe sur cette PTI le jour de l'oral!

  11. #11
    Membre du Club Avatar de Tyrael62
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 90
    Points : 54
    Points
    54
    Par défaut
    Leur extension est en ".URL"

  12. #12
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Citation Envoyé par Tyrael62
    Il me lit bien les 2 premiers liens de la premiere ligne ,mais arrivé au 3eme lien situé en 2eme ligne dans le repertoire , il me génére une erreur lors de sa lecture et me le transforme en fichier de type Fichier que je ne peux supprimer ensuite.
    Personnellement, j'ai bien du mal à comprendre cette phrase.
    Tu arrives à mettre 2 liens sur une ligne dans un répertoire???
    Pour moi, dans un répertoire, il n'y a que des fichiers. Aucune notion de ligne...
    Accessoirement, les fichiers Liens ont une extension .url.

    Es-tu certain que la simple lecture d'un fichier lui change (supprime) son extension?
    As-tu fait une verification du contenu de ton répertoire (en mode DOS) en faisant tourner ton programme en pas à pas?

    Edit --> Oups, j'arrive après la bataille...
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  13. #13
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Bon !
    je suis content d'apprendre cette nouvelle !
    Une question quand-même : n'était-il pas plus facile et plus clair, pour lire et supprimer au besoin, d'utiliser Dir ?
    Si tu en veux un exemple, tu verras à quel point c'est plus facile à comprendre, à mettre en oeuvre et.... à expliquer !
    Dis-moi

    EDIT :
    Ouvres un petit projet et vois ce que fait celà, par exemple, en donnant bien sur à appi le chemin de tes liens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Command1_Click()
      appi = "C:\Documents and Settings\marques.MARQUES-EUZXXHC\Favoris\Liens\" 'Liens
      myname = Dir(appi & "*.url*")
      Do While myname <> ""
        If myname <> "." And myname <> ".." Then
          MsgBox myname
        End If
        myname = Dir
      Loop
    End Sub
    tu verras ce qu'il est largement possible d'en faire, y compris d'alimenter une listBox, si tu le veux !

  14. #14
    Membre du Club Avatar de Tyrael62
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 90
    Points : 54
    Points
    54
    Par défaut
    Oui jmfmarques , je veux bien voir un exemple mais le DIR , il me sert à quoi ici car si je me souviens de mes cours , on l'utilise pour vérifier l'existence d'un fichier.

  15. #15
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Déjà répondu : voir mon edit sur message précédent

  16. #16
    Membre du Club Avatar de Tyrael62
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 90
    Points : 54
    Points
    54
    Par défaut
    J'ai bien regardé ce que çà fait mais çà va me lire tous les liens de mon repertoire.Je te mets le code que j'utilise pour lire les liens des boutons de ma toolbar.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    i = 1
    For Each objItem In colItems
     
    If Button.Index = i Then
         GoTo suite
    End If
    i = i + 1
    Next
    suite:
     
    Navigator.Navigate2 objItem.GetLink.Path
    Tiens , pour un souci de clarté , je vais te mettre toutes les procédures intervenant de la création à la lecture des liens URL

    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
    52
    53
    54
    55
    56
    57
    58
    59
     
     
    'Partie de code sur la feuille MDI
     
    Private Sub Ajout_fav_Click()
    i = 0
    Do
      i = i + 1
    Loop Until i <> Explorateur.Favoris_bar.Buttons.Count
     
    Favoris_button = Explorateur.Favoris_bar.Buttons.Add(i, , Explorateur.Navigator.LocationName)
    favoris_lien = "Raccourci vers " & Explorateur.Navigator.LocationName & ".Url"
    nom_lien = Explorateur.Navigator.LocationURL
    Call ecrire_raccourci_liens(favoris_lien, nom_lien)
     
    End Sub
     
    'Partie de code située dans un module
     
    '---------------------------- Lire le répertoire Liens -------------------------------
     
    Public Sub lire_Favoris()
     
    Dim Favoris_button As Variant
    Dim objShell As Shell32.Shell
    Dim objFolder As Shell32.Folder
    Dim colItems As Shell32.FolderItems
    Dim objItem As Shell32.FolderItem
     
    Set objShell = CreateObject("Shell.Application")
    Set objFolder = objShell.NameSpace(App.Path & "\Liens")
    Set colItems = objFolder.Items
    i = 1
    For Each objItem In colItems
      Favoris_button = Explorateur.Favoris_bar.Buttons.Add(i, , objItem.Name)
    i = i + 1
    Next
     
    End Sub
     
    '--------------------------- Ecrire le Raccourci liens --------------------------------
     
    Public Sub ecrire_raccourci_liens(favoris_lien, nom_lien As String)
     
    Dim WSHShell, Shortcut As Object
     
    Set WSHShell = CreateObject("WScript.Shell")
     
    Set Shortcut = WSHShell.CreateShortcut(App.Path & "\Liens\" & favoris_lien)
     
    With Shortcut
        .TargetPath = WSHShell.ExpandEnvironmentStrings(nom_lien)
    End With
     
    Shortcut.Save
     
    Call lire_Favoris
     
    End Sub
    Là ou je dois intervenir c'est au niveau de la création pour éviter que le nom soit trop long sinon il me crée automatiquemen un lien de type fichier(sans extension)

  17. #17
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Oui ?
    Alors : en ce qui concerne l'emploi de Dir, il te suffit de donner le chemin du répertoire où tu as "inscrit" ! Le principe reste exactement le même !
    Tu peux même ajouter une condition : si dans toolbar sinon laisser tomber
    tu peux enfin alimenter une liste de ce que tu as dans le toolbar puis travailler avec et, au besoin, reconstituer ta tollobar après une suppression éventuelle
    mais bon... tu y es arrivé d'une autre façon, alors c'est bon ....

    pour ce qui est des noms longs, laisse-moi regarder ...
    à +

  18. #18
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Je vois mal le problème des noms longs
    essayes de forcer la main en faisant entourer par des guillemets
    par exemple :
    & """ & machin_lien & """
    si cela ne vas pas essayes """" au lieu de """, puis"'" (1 simple entre 2 doubles) puis '"' (un double entre 2 simples)
    C'est peut-être celà !

  19. #19
    Membre du Club Avatar de Tyrael62
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 90
    Points : 54
    Points
    54
    Par défaut
    J'y pensais pour la longueur du nom , je peux retourner sa longueur et si cette longueur excede une longueur limite prédéfini alors la chaine s'arrete à cette longueur limite , ce qui pourrai résoudre mon problème qu'en pense tu?

  20. #20
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    L'accfès au forum rame comme ce n'est pas possible ....

    C'est certes une solution, mais elle n'est pas élégante, hélàs !
    Essayes le coup des guillemets dans les guillemets !...

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. [XL-2010] Besoin d'aide pour supprimer des lignes en VBA
    Par SimKmil dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 12/05/2013, 09h46
  2. Macro pour supprimer des fichiers
    Par thomahh dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 19/07/2012, 11h55
  3. Utiliser des fichiers .properties pour lancer des méthodes
    Par mussali dans le forum Développement Web en Java
    Réponses: 15
    Dernier message: 08/09/2011, 12h45
  4. Fichier .bat pour compresser des fichiers de logs
    Par Quartus dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 26/06/2008, 17h45
  5. Shell pour supprimer des lignes d'un fichier
    Par nelsa dans le forum Autres langages
    Réponses: 2
    Dernier message: 20/09/2004, 13h26

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