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

VBScript Discussion :

lire un fichier avec l'arborescence en vbscript


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 92
    Par défaut lire un fichier avec l'arborescence en vbscript
    Bonjour , je voudrais lire un fichier grâce à l'arborescence de vbscript . J'ai trouvé un code sur le net qui est censé me permettre de selectionner un fichier à partir d'une arborescence . Malheureusement , ce fichier ne me permet que de selectionner un dossier . Lorsque je sélectionne un fichier , ça me ramène une erreur ( qui signale une valeur nulle ) . Pouvez vous m'aider à corriger l'erreur .

    Code vbscript : 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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
     
    ' Flags for the options parameter
    Const BIF_returnonlyfsdirs   = &H0001
    Const BIF_dontgobelowdomain  = &H0002
    Const BIF_statustext         = &H0004
    Const BIF_returnfsancestors  = &H0008
    Const BIF_editbox            = &H0010
    Const BIF_validate           = &H0020
    Const BIF_browseforcomputer  = &H1000
    Const BIF_browseforprinter   = &H2000
    Const BIF_browseincludefiles = &H4000
     
    Dim file
     
    Set WshShell = WScript.CreateObject("Shell.Application")
    Set oItem = WshShell.BrowseForFolder( 0 , "Select a file or folder to copy", BIF_browseincludefiles , "C:\")
     
    name = oItem.ParentFolder.ParseName(oItem.Title).Path
    tmp = BrowseForFolder(Title, flags, dir)
    file = BrowseForFolder(Title, flags, dir)
    If file = "-5" Then 
        WScript.Echo "Not possible to select files in root folder"
    Else
        If file = "-1" Then 
            WScript.Echo "No object selected; Cancel clicked"
        Else
            WScript.Echo "Object: ", file
        End If
     
    End If
     
     
     
     
     
     
    '********************************************************
    ' File:    FileSelectDialog.vbs (WSH sample in VBScript) 
    ' Author:  (c) G. Born
    '
    ' Using the shell dialog box to select a folder
    ' or a file
    ' Warning: A run-time error occurs if the script
    ' is executed in Windows 2000 and the user selects
    ' a file in the root folder of a drive.
    '********************************************************
     
    file = BrowseForFolder( _
            "Select a file or folder to copy", _
            BIF_returnonlyfsdirs + BIF_browseincludefiles, _
            "")
    If file = "-5" Then 
        WScript.Echo "Not possible to select files in root folder"
    Else
        If file = "-1" Then 
            WScript.Echo "No object selected; Cancel clicked"
        Else
            WScript.Echo "Object: ", file
        End If
    End If 
     
    ' Using the shell's BrowseForFolder method to
    ' return the full path to the selected object
    ' title = Text shown in the dialog box
    ' flag = One of the values for controlling the 
    '        BrowseForFolder behavior
    ' dir = Preselected directory (can be "")
    Function BrowseForFolder(title, flag, dir)
        On Error Resume Next
     
        Dim oShell, oItem, tmp
     
        ' Create WshShell object.
        Set oShell = WScript.CreateObject("Shell.Application")
     
        ' Invoke Browse For Folder dialog box.
        Set oItem = oShell.BrowseForFolder(&H0, title, flag, dir)
        If Err.Number <> 0 Then
            If Err.Number = 5 Then
                BrowseForFolder= "-5"
                Err.Clear
                Set oShell = Nothing
                Set oItem = Nothing
                Exit Function
            End If
        End If
     
        ' Now we try to retrieve the full path.
        BrowseForFolder = oItem.ParentFolder.ParseName(oItem.Title).Path
     
        ' Handling: Cancel button and selecting a drive
        If Err<> 0 Then
            If Err.Number = 424 Then           ' Handle Cancel button.
                BrowseForFolder = "-1"
            Else
                Err.Clear
                ' Handle situation in which user selects a drive.
                ' Extract drive letter from the title--first search
                ' for a colon (:).
                tmp = InStr(1, oItem.Title, ":")
                If tmp > 0 Then           ' A : is found; use two 
                                          ' characters and add \.
                    BrowseForFolder = _   
                        Mid(oItem.Title, (tmp - 1), 2) & "\"
                End If
            End If
        End If
     
        Set oShell = Nothing
        Set oItem = Nothing
        On Error GoTo 0
    End Function
     
    '*** End

  2. #2
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 420
    Par défaut Utilise mon fichier VbBrowser si tu veux
    En utilisant le même code sous VB6(avec les modifications nécessaires), on obtient le même message qu'en VBS :"Le fichier spécifié est introuvable".

    Une solution est peut-être d'utiliser le fichier VbBrowser dont on place une copie dans l'un des dossiers présents dans la variable d'environnement PATH ou dans le dossier du fichier script ou encore dans n'importe quel dossier à condition d'en fournir le chemin complet.

    L'appel se fait ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     Dim SN
    Set SN=CreateObject("Shell.Application")
    SN.Run "VbBrowser.exe"
    Si tu veux d'autres emplois du script, je pourrais modifier mon fichier en conséquence et le poster à la même adresse.
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  3. #3
    Expert éminent


    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
    Par défaut
    essai cela :
    Citation Envoyé par RadPAT Voir le message
    Salut,

    voici une méthode que j'ai trouvé sur le net et qui me convient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Set objDialog=CreateObject("SAFRCFileDlg.FileOpen")
    ObjDialog.OpenFileOpenDlg
    OpenFile=objDialog.FileName


    Pour récupérer le nom du fichier selectionné, tu fais ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    strFileName=objDialog.FileName
    MsgBox strFileName
    en espérant que ca puisse t'aider.
    A++

  4. #4
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 92
    Par défaut
    bon , je nai pas windows vista . mais est ce que ce code marche sur vista et windows seven

  5. #5
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 130
    Par défaut
    Désolé, je n'ai pas noté ou j'ai récupère sur internet ce bout de code, il fonctionne correctement, à condition que COMDLG32.OCX soit présent dans le dossier system de l'ordinateur (C:\Windows\System32)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    set WSHShell = wscript.CreateObject("wscript.Shell" )
    set objDlg = wscript.CreateObject("MSComDlg.CommonDialog" )
    objDlg.Filter = "All Files (*.*)|*.*|VBScript Files (*.vbs)|*.vbs"
    objDlg.FilterIndex = 2
    objDlg.MaxFileSize = 260
    objDlg.CancelError = true
    objDlg.ShowOpen
    WSHShell.popup objDlg.Filename
    Un lien qui pourrait être utile
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  6. #6
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 92
    Par défaut
    malheureusement , ce code ne marche que sur windows XP

Discussions similaires

  1. [Débutant] Lire un fichier avec un formatage particulier
    Par babounlehobbit dans le forum MATLAB
    Réponses: 8
    Dernier message: 14/03/2007, 09h21
  2. Lire un fichier avec awk
    Par lili2704 dans le forum Linux
    Réponses: 4
    Dernier message: 18/01/2007, 15h53
  3. Réponses: 1
    Dernier message: 19/12/2005, 17h09
  4. Lire un fichier avec un charset UTF8
    Par Sonic dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 03/05/2005, 19h37
  5. [ZIP]besoin de lire des fichiers avec l'extension tar.gz
    Par mathieublanc13 dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 24/05/2004, 13h35

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