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:
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 |
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:
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.