Translation du topic "720974.aspx" de VB6 en VBS

Résolu
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 - 22 avril 2006 à 14:24
rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 - 22 mai 2006 à 01:07
Bonjour,

Hier soir, j'ai trouvé le topic
'http://www.vbfrance.com/infomsg/OUVERTURE-FICHIER-RECENT-2_720974.aspx'
intéressant à résoudre. Il pourrait m'être utile.

"michelxld" a proposé une réponse en VB6.
N'ayant pas VB(5, 6 ou .Net, ...), je translate certains codes, de ce Forum, en vbs.
J'essaye, en vain, d'adapter celui-ci en VBS.
Ci-dessous, mon script erroné.

Quelqu'un pourrait-il m'orienter pour cet algo.

Merci.
jean-marc


'Ce script (VBS) a pour but d'afficher, dans une MsgBox, la liste des fichiers
'triés par date de modification (du + récent au + ancien)
'
'Test de transation de VB6 en VBS du code (réponse) proposé par "michelxld" (forum VBFrance)
'http://www.vbfrance.com/infomsg/OUVERTURE-FICHIER-RECENT-2_720974.aspx (le 22/04/2006 06:19:25)
'

Dim Path
Path = "d:\test"

MsgBox ShowFolderList(Path),vbmessage,"Liste des fichiers triés par date de modification (du + récent au + ancien)"

Function ShowFolderList(strPath)
Dim fso, Dossiers, fic, fichiers, strListe, f, fdate, fname
Set fso = CreateObject("Scripting.FileSystemObject")
Set Dossiers = fso.GetFolder(path)
Set fic = Dossiers.Files

imax = 0
For Each fichiers in fic
Set f = fso.GetFile(fichiers)
'MsgBox "aa imax " & imax
imax = imax + 1
ReDim Preserve Tableau(2, imax)
'MsgBox "bb imax " & imax
Tableau(1, imax) = f.Name
Tableau(2, imax) = f.DateLastModified
fdate = f.DateLastModified
fname = f.Name

Tableau(1, imax) = fname
Tableau(2, imax) = fdate
Fichier = fname

MsgBox "ici le tableau est ok " &vbCrLf& "imax=" & imax &vbCrLf& "Tableau(1, imax)=" & Tableau(1, imax ) &vbCrLf& "Tableau(2, imax)=" & Tableau(2, imax)


Valeur = 0
For imax = 1 To imax - 1
'MsgBox " bbb " &vbCrLf& CDate(Tableau(2, imax )) &vbCrLf& CDate(Tableau(2, imax + 1))

If CDate(Tableau(2, imax)) < CDate(Tableau(2, imax + 1)) Then
'MsgBox " ccc " &vbCrLf& CDate(Tableau(2, imax)) &vbCrLf& CDate(Tableau(2, imax + 1))

For z = 1 To 2

Cible = Tableau(z, imax)
Tableau(z, imax) = Tableau(z, imax + 1)
Tableau(z, imax + 1) = Cible

'MsgBox " ddd " & Cible & " " & Tableau(z, imax) & " " & Tableau(z, imax + 1)
Next

Valeur = 1
End If
Next
''''''''''''''''''''''''''''''''''
'
'Affichage du résultat des fichiers triés par date de modification
''
For r = 1 To imax
'ici INCORRECT, ça part en LIVE !!!
liste = liste &vbCrLf& "r=" & r & " imax=" & imax & " " & Tableau(2, imax) & " " & Tableau(1, imax)
'MsgBox "boucle finale " & " r=" & r & " imax=" & imax &vbCrLf& liste

If r = imax Then MsgBox "FIN complete mais fausse !!!!! " &vbCrLf&vbCrLf& liste

Next

strListe = fdate & " " & fname

Next

ShowFolderList = strListe

End Function

Set fso = Nothing
Set Dossiers = Nothing
Set fic = Nothing

6 réponses

rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 7
24 avril 2006 à 23:14
Salut 9517 JMO,

intéressant travail,

Function ShowFolderList(strPath)
Dim fso, Dossiers, fic, fichiers, strListe, f, fdate, fname
Set fso = CreateObject("Scripting.FileSystemObject")
Set Dossiers = fso.GetFolder(Path)
Set fic = Dossiers.Files


imax = 0
'début de l'énumération
For Each fichiers In fic
Set = fso.GetFile(fichiersnotes qu'ici, f et fichiers sont égaux
'MsgBox "aa imax " & imax
imax = imax + 1
ReDim Preserve Tableau(2, imax)
'MsgBox "bb imax " & imax
Tableau(1, imax) = f.Name
Tableau(2, imax) = f.DateLastModified
fdate = f.DateLastModified
fname = f.Name

Tableau(1, imax) = fname
Tableau(2, imax) = fdate
Fichier = fname

MsgBox "ici le tableau est ok " "imax=" & imax & vbCrLf & & vbCrLf & "Tableau(2, imax) =" & Tableau(2, imax)' ATTENTION aux espaces entre les & et le vbCrLf


Valeur = 0
For imax = 1 To imax - 1
'MsgBox " bbb " &vbCrLf& CDate(Tableau(2, imax )) &vbCrLf& CDate(Tableau(2, imax + 1))

If CDate(Tableau(2, imax)) < CDate(Tableau(2, imax + 1)) Then
'MsgBox " ccc " &vbCrLf& CDate(Tableau(2, imax)) &vbCrLf&
'CDate(Tableau(2, imax + 1))
For z = 1 To 2
Cible = Tableau(z, imax)
Tableau(z, imax) = Tableau(z, imax + 1)
Tableau(z, imax + 1) = Cible
'MsgBox " ddd " & Cible & " " & Tableau(z, imax) & " " &
'Tableau(z, imax + 1)
Next
Valeur = 1
End If
Next
Next
'fin de l'énumération


' ATTENTION , le bloc qui suit n'est pas dans l'énumération des fichiers
'mais à l'extérieur.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''' Affichage du résultat des fichiers triés par date de modification
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
liste = ""
For r = 1 To imax
'ici , c'est mieux !!!
liste = liste & vbCrLf & "r=" & r & " imax=" & imax & " " & Tableau(2, r ) & " " & Tableau(1, r)
'MsgBox "boucle finale " & " r =" & r & " imax=" & imax &vbCrLf& liste

If r = imax Then MsgBox "FIN complete et juste !!" & vbCrLf & vbCrLf & liste
Next

strListe = fdate & " " & fname
ShowFolderList = strListe
Set fso = Nothing ' il vaut mieux les mettre là
Set Dossiers = Nothing
Set fic = Nothing


End Function

à+,


rvblogn<SUP>
</SUP><SUP>Je veux ton bien... et je l'aurais... mais jamais avant la page 4
</SUP>
3
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
25 avril 2006 à 04:46
Bonjour,

Merci, rvblog.
Je vois que tu as recherché, via ma Fiche, mes posts en attente de résolution.

Je viens de faire un copier/coller + exécution.
Le tableau est bien trié !!!!

Grâce à cette solution, je vais pouvoir résoudre un ancien post.
Lecture d'un fichier .txt pour affichage en .html de tableaux multi dimensionnels.
'tri sur bibliothèques tri sur % d'occupation
bib %Taux Occupation bib %Taux Occupation
AA 58% 60 Mo BB 80% 61 Mo
BB 80% 61 Mo CC 62% 62 Mo
CC 62% 62 Mo AA 58% 60 Mo

Je vais m'y atteler dès samedi.
Now, direction TGV + suresnes pour cours Control M.

a+ et bonne journée.
Et encore merci.

jean-marc
0
rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 7
25 avril 2006 à 09:24
Salut 9517 JMO,

de rien, je ne travaille que sur les anciens post, > = à la page 4 des derniers messages.
bonne route (ou bon rail)

PS: au fait, qu'est-ce que c'est cours Control M.?
à+


rvblogn<SUP>
</SUP><SUP>Je veux ton bien... et je l'aurais... mais jamais avant la page 4
</SUP>
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
26 avril 2006 à 08:58
Bonjour rvblog,

CONTROL-M / EM est un automate pour gérer applis et batchs multi plates-formes
(Windows, Unix, Linux, MVS, SAP). Il s'adresse aux "grosses" entreprises.
Les cours sont organisés par BMCsoftware

Bonne journée.
jean-marc
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
21 mai 2006 à 23:26
Salut rvblog,

ben ce Post m'a permis d'enfin comprendre ton petit message de signature :
"Je veux ton bien... et je l'aurais... mais jamais avant la page 4"

Sur ce, bonne soirée à tous !!

mortalino
0
rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 7
22 mai 2006 à 01:07
Salut 9517 JMO, salut =647037 mortalino,

scuse-nous 9517 JMO,
bonne soirée =647037 mortalino

à+

rvblog<sup>n
Je veux ton bien....et je l'aurais....mais jamais avant la page 4 des derniers échanges</sup>
0
Rejoignez-nous