Set Fso = CreateObject("scripting.filesystemobject")
Set Fso = CreateObject("scripting.filesystemobject")
Set Fso = CreateObject("scripting.filesystemobject")
Salut! :O)
> Set Fso = CreateObject("scripting.filesystemobject")
Si tu ne travailles pas en VB Script, je te déconseilles fortement
l'utilisation du FSO.
http://faq.vb.free.fr/index.php?question6
Voici un exemple utilisant les fonctions built-in de VB :
'***
' Module1
Option Explicit
Private Sub Main()
Dim sFiles() As String
Dim i As Long
sFiles = GetFiles("c:windowssystem", "*.dll")
Call QuickSortStringsAscending(sFiles, LBound(sFiles), UBound(sFiles))
For i = 0 To UBound(sFiles)
Debug.Print sFiles(i)
Next i
End Sub
' Path : un chemin valide se terminant par ""
' Pattern : un filtre valide sur le(s) type(s) de ficher(s) à trouver
' Return : un tableau de nom de fichier contenu dans le répertoire
Private Function GetFiles(ByRef Path As String, Optional ByRef Pattern As
String = "*.*") As String()
Dim sFiles() As String ' tableau de noms de fichier
Dim sFile As String ' nom du fichier actuel
Dim lLastIndex As Long ' dernier index utilisé du tableau
Const BUFFER As Long = 50 ' buffer pour le tableau
' on créer un buffer suffisament pour éviter
' de redimensionner le tableau souvent
' ça accélère de beaucoup le temps traitement
ReDim sFiles(BUFFER) As String
' trouve le premier fichier
sFile = Dir$(Path & Pattern)
' boucle tant qu'il y a des fichiers
Do Until LenB(sFile) = 0
' on ajoute le fichier au tableau
sFiles(lLastIndex) = Path & sFile
' on incrémente le compteur du tableau
lLastIndex = lLastIndex + 1
' si le compteur à atteint la limite du
' tableau, on redimensionne se dernier
If (lLastIndex > UBound(sFiles)) Then
ReDim Preserve sFiles(lLastIndex + BUFFER) As String
End If
' passe au prochain fichier
sFile = Dir$
Loop
' on tronque le surplus d'espace
ReDim Preserve sFiles(lLastIndex - 1) As String
' on renvoit le tableau
GetFiles = sFiles
End Function
Public Sub QuickSortStringsAscending(sarray() As String, inLow As Long,
As Long)
Dim pivot As String
Dim tmpSwap As String
Dim tmpLow As Long
Dim tmpHi As Long
tmpLow = inLow
tmpHi = inHi
pivot = sarray((inLow + inHi) / 2)
While (tmpLow <= tmpHi)
While (sarray(tmpLow) < pivot And tmpLow < inHi)
tmpLow = tmpLow + 1
Wend
While (pivot < sarray(tmpHi) And tmpHi > inLow)
tmpHi = tmpHi - 1
Wend
If (tmpLow <= tmpHi) Then
tmpSwap = sarray(tmpLow)
sarray(tmpLow) = sarray(tmpHi)
sarray(tmpHi) = tmpSwap
tmpLow = tmpLow + 1
tmpHi = tmpHi - 1
End If
Wend
If (inLow < tmpHi) Then Call QuickSortStringsAscending(sarray(), inLow,
tmpHi)
If (tmpLow < inHi) Then Call QuickSortStringsAscending(sarray(),
inHi)
End Sub
'***
La fonction QuickSort à été prise sur le site de Randy :
http://vbnet.mvps.org/code/sort/qsvariations.htm
--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
Salut! :O)
> Set Fso = CreateObject("scripting.filesystemobject")
Si tu ne travailles pas en VB Script, je te déconseilles fortement
l'utilisation du FSO.
http://faq.vb.free.fr/index.php?question6
Voici un exemple utilisant les fonctions built-in de VB :
'***
' Module1
Option Explicit
Private Sub Main()
Dim sFiles() As String
Dim i As Long
sFiles = GetFiles("c:windowssystem", "*.dll")
Call QuickSortStringsAscending(sFiles, LBound(sFiles), UBound(sFiles))
For i = 0 To UBound(sFiles)
Debug.Print sFiles(i)
Next i
End Sub
' Path : un chemin valide se terminant par ""
' Pattern : un filtre valide sur le(s) type(s) de ficher(s) à trouver
' Return : un tableau de nom de fichier contenu dans le répertoire
Private Function GetFiles(ByRef Path As String, Optional ByRef Pattern As
String = "*.*") As String()
Dim sFiles() As String ' tableau de noms de fichier
Dim sFile As String ' nom du fichier actuel
Dim lLastIndex As Long ' dernier index utilisé du tableau
Const BUFFER As Long = 50 ' buffer pour le tableau
' on créer un buffer suffisament pour éviter
' de redimensionner le tableau souvent
' ça accélère de beaucoup le temps traitement
ReDim sFiles(BUFFER) As String
' trouve le premier fichier
sFile = Dir$(Path & Pattern)
' boucle tant qu'il y a des fichiers
Do Until LenB(sFile) = 0
' on ajoute le fichier au tableau
sFiles(lLastIndex) = Path & sFile
' on incrémente le compteur du tableau
lLastIndex = lLastIndex + 1
' si le compteur à atteint la limite du
' tableau, on redimensionne se dernier
If (lLastIndex > UBound(sFiles)) Then
ReDim Preserve sFiles(lLastIndex + BUFFER) As String
End If
' passe au prochain fichier
sFile = Dir$
Loop
' on tronque le surplus d'espace
ReDim Preserve sFiles(lLastIndex - 1) As String
' on renvoit le tableau
GetFiles = sFiles
End Function
Public Sub QuickSortStringsAscending(sarray() As String, inLow As Long,
As Long)
Dim pivot As String
Dim tmpSwap As String
Dim tmpLow As Long
Dim tmpHi As Long
tmpLow = inLow
tmpHi = inHi
pivot = sarray((inLow + inHi) / 2)
While (tmpLow <= tmpHi)
While (sarray(tmpLow) < pivot And tmpLow < inHi)
tmpLow = tmpLow + 1
Wend
While (pivot < sarray(tmpHi) And tmpHi > inLow)
tmpHi = tmpHi - 1
Wend
If (tmpLow <= tmpHi) Then
tmpSwap = sarray(tmpLow)
sarray(tmpLow) = sarray(tmpHi)
sarray(tmpHi) = tmpSwap
tmpLow = tmpLow + 1
tmpHi = tmpHi - 1
End If
Wend
If (inLow < tmpHi) Then Call QuickSortStringsAscending(sarray(), inLow,
tmpHi)
If (tmpLow < inHi) Then Call QuickSortStringsAscending(sarray(),
inHi)
End Sub
'***
La fonction QuickSort à été prise sur le site de Randy :
http://vbnet.mvps.org/code/sort/qsvariations.htm
--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
Salut! :O)
> Set Fso = CreateObject("scripting.filesystemobject")
Si tu ne travailles pas en VB Script, je te déconseilles fortement
l'utilisation du FSO.
http://faq.vb.free.fr/index.php?question6
Voici un exemple utilisant les fonctions built-in de VB :
'***
' Module1
Option Explicit
Private Sub Main()
Dim sFiles() As String
Dim i As Long
sFiles = GetFiles("c:windowssystem", "*.dll")
Call QuickSortStringsAscending(sFiles, LBound(sFiles), UBound(sFiles))
For i = 0 To UBound(sFiles)
Debug.Print sFiles(i)
Next i
End Sub
' Path : un chemin valide se terminant par ""
' Pattern : un filtre valide sur le(s) type(s) de ficher(s) à trouver
' Return : un tableau de nom de fichier contenu dans le répertoire
Private Function GetFiles(ByRef Path As String, Optional ByRef Pattern As
String = "*.*") As String()
Dim sFiles() As String ' tableau de noms de fichier
Dim sFile As String ' nom du fichier actuel
Dim lLastIndex As Long ' dernier index utilisé du tableau
Const BUFFER As Long = 50 ' buffer pour le tableau
' on créer un buffer suffisament pour éviter
' de redimensionner le tableau souvent
' ça accélère de beaucoup le temps traitement
ReDim sFiles(BUFFER) As String
' trouve le premier fichier
sFile = Dir$(Path & Pattern)
' boucle tant qu'il y a des fichiers
Do Until LenB(sFile) = 0
' on ajoute le fichier au tableau
sFiles(lLastIndex) = Path & sFile
' on incrémente le compteur du tableau
lLastIndex = lLastIndex + 1
' si le compteur à atteint la limite du
' tableau, on redimensionne se dernier
If (lLastIndex > UBound(sFiles)) Then
ReDim Preserve sFiles(lLastIndex + BUFFER) As String
End If
' passe au prochain fichier
sFile = Dir$
Loop
' on tronque le surplus d'espace
ReDim Preserve sFiles(lLastIndex - 1) As String
' on renvoit le tableau
GetFiles = sFiles
End Function
Public Sub QuickSortStringsAscending(sarray() As String, inLow As Long,
As Long)
Dim pivot As String
Dim tmpSwap As String
Dim tmpLow As Long
Dim tmpHi As Long
tmpLow = inLow
tmpHi = inHi
pivot = sarray((inLow + inHi) / 2)
While (tmpLow <= tmpHi)
While (sarray(tmpLow) < pivot And tmpLow < inHi)
tmpLow = tmpLow + 1
Wend
While (pivot < sarray(tmpHi) And tmpHi > inLow)
tmpHi = tmpHi - 1
Wend
If (tmpLow <= tmpHi) Then
tmpSwap = sarray(tmpLow)
sarray(tmpLow) = sarray(tmpHi)
sarray(tmpHi) = tmpSwap
tmpLow = tmpLow + 1
tmpHi = tmpHi - 1
End If
Wend
If (inLow < tmpHi) Then Call QuickSortStringsAscending(sarray(), inLow,
tmpHi)
If (tmpLow < inHi) Then Call QuickSortStringsAscending(sarray(),
inHi)
End Sub
'***
La fonction QuickSort à été prise sur le site de Randy :
http://vbnet.mvps.org/code/sort/qsvariations.htm
--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
> Le fait est que je bosse en VBScript et que le FSO me renvoi une
de fichiers et pas un tableau de string.
> Le fait est que je bosse en VBScript et que le FSO me renvoi une
de fichiers et pas un tableau de string.
> Le fait est que je bosse en VBScript et que le FSO me renvoi une
de fichiers et pas un tableau de string.
> Le fait est que je bosse en VBScript et que le FSO me renvoi une
collection
> de fichiers et pas un tableau de string.
ok! mais à moins d'être fou, je crois que le Folder.Files te renvoit déjà
les fichiers triés alphabétiquement, non ? c'est du moins le comportement
que j'obtiens ici..
exemple de résultats :
0.log
AcrobatSetupStatus.ini
actsetup.log
bootstat.dat
Bulles de savon.bmp
clock.avi
COM+.log
comsetup.log
control.ini
dahotfix.log
dasetup.log
desktop.ini
DIIUnin.dat
DIIUnin.exe
DIIUnin.pif
DirectX.log
DtcInstall.log
explorer.exe
explorer.scf
FaxSetup.log
frontpg.ini
et ça continue jusqu'à z suivit de _ ...
--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
> Le fait est que je bosse en VBScript et que le FSO me renvoi une
collection
> de fichiers et pas un tableau de string.
ok! mais à moins d'être fou, je crois que le Folder.Files te renvoit déjà
les fichiers triés alphabétiquement, non ? c'est du moins le comportement
que j'obtiens ici..
exemple de résultats :
0.log
AcrobatSetupStatus.ini
actsetup.log
bootstat.dat
Bulles de savon.bmp
clock.avi
COM+.log
comsetup.log
control.ini
dahotfix.log
dasetup.log
desktop.ini
DIIUnin.dat
DIIUnin.exe
DIIUnin.pif
DirectX.log
DtcInstall.log
explorer.exe
explorer.scf
FaxSetup.log
frontpg.ini
et ça continue jusqu'à z suivit de _ ...
--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
> Le fait est que je bosse en VBScript et que le FSO me renvoi une
collection
> de fichiers et pas un tableau de string.
ok! mais à moins d'être fou, je crois que le Folder.Files te renvoit déjà
les fichiers triés alphabétiquement, non ? c'est du moins le comportement
que j'obtiens ici..
exemple de résultats :
0.log
AcrobatSetupStatus.ini
actsetup.log
bootstat.dat
Bulles de savon.bmp
clock.avi
COM+.log
comsetup.log
control.ini
dahotfix.log
dasetup.log
desktop.ini
DIIUnin.dat
DIIUnin.exe
DIIUnin.pif
DirectX.log
DtcInstall.log
explorer.exe
explorer.scf
FaxSetup.log
frontpg.ini
et ça continue jusqu'à z suivit de _ ...
--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
Et bien, non, pas chez moi, l'affichage des données n'est clairement pas
dans l'ordre alphab !
Et bien, non, pas chez moi, l'affichage des données n'est clairement pas
dans l'ordre alphab !
Et bien, non, pas chez moi, l'affichage des données n'est clairement pas
dans l'ordre alphab !