Récupérer une variable dans une chaine de caractere et comparer une date. [Résolu]

Messages postés
5
Date d'inscription
jeudi 28 septembre 2006
Statut
Membre
Dernière intervention
17 octobre 2007
- - Dernière réponse : LePetitNiko
Messages postés
5
Date d'inscription
jeudi 28 septembre 2006
Statut
Membre
Dernière intervention
17 octobre 2007
- 17 oct. 2007 à 13:11
Bonjour à tous,

Je viens ici soliciter un peu de votre aide.
Je vous explique :

J'ai un fichier txt avec une liste de nom de repertoire type :

"REPERTOIREXX1 - MODIFIE LE 02 06 07"
"REPERTOIREX2 - MODIFIE LE 04 09 07
"REPERTOIREXXX3 - MODIFIE LE 10 09 07
"REPERTOIRE4 - MODIFIE LE 20 11 06"

Est-il possible en VB de récuperer en sortie dans un autre fichier texte la liste des repertoires qui ont été modifié durant les derniers 15 jours.... en comparant donc les derniers caractères du nom de repertoire donc "02 06 07" par exemple pour le premier de la liste à la date du jour....

Merci pour votre aide...
Afficher la suite 

6 réponses

Meilleure réponse
Messages postés
1855
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
23
3
Merci
 Bonsoir,

Ce n'est pas une réponse en vb6, mais facilement adaptable.
Utilisation du split sur " et du filter sur -

Option explicit
Dim objFso, Fichier, Path
Set objFso = CreateObject("Scripting.FileSystemObject")

Fichier = "fichier.txt"
Path  = "D:\SCRIPTS\Fichiers"

Const ForReading = 1
Dim objTextStream, arrFiles, i
Set objTextStream = objFso.OpenTextFile(Path & Fichier, ForReading)
Do While Not ObjTextStream.AtEndOfStream
   arrFiles = Filter(split(ObjTextStream.ReadLine, """"),"-")
   If IsArray(arrFiles) = False Then
      Else
      For i = 0 To Ubound(arrFiles)
          MsgBox arrFiles(i) &vbCrLf& CDate(Right(arrFiles(i),8)) &vbCrLf& _
                 Date & vbCrLf& _
                 DateDiff("d", CDate(Right(arrFiles(i),8)), Date) _
                 ,,"élément de mon tableau"
          'Verif sur 42 jours: 2 msgbox affichées (1ère et 4ème)
          If DateDiff("d", CDate(Right(arrFiles(i),8)), Date) > 42 Then _
             MsgBox arrFiles(i),,"date supérieure"
      Next
   End If
Loop
objTextStream.Close
Set objTextStream = Nothing
Set objFso  = Nothing

jean-marc

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 186 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_JMO
Messages postés
1855
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
23
3
Merci
 Bonjour

A adapter.

Option explicit
Dim objFso, Fichier, Path, FicOut, resultat
Set objFso = CreateObject("Scripting.FileSystemObject")

Fichier = "fichier.txt"
FicOut  = "fichier_resultat.txt"
Path  = "D:\SCRIPTS\Fichiers"
Const ForReading 1, ForWriting 2
Dim objTextStream, arrFiles, i
Set objTextStream = objFso.OpenTextFile(Path & Fichier, ForReading)
Do While Not ObjTextStream.AtEndOfStream
   arrFiles = Filter(split(ObjTextStream.ReadLine, """"),"-")
   If IsArray(arrFiles) = False Then
      Else
      For i = 0 To Ubound(arrFiles)
          'Verif sur 42 jours: 2 msgbox affichées (1ère et 4ème)
          If DateDiff("d", CDate(Right(arrFiles(i),8)), Date) > 42 Then
             resultat = arrFiles(i) &vbCrLf& resultat
          End if            
      Next
   End If
Loop
objTextStream.Close
Set objTextStream = objFso.CreateTextFile(Path & FicOut, ForWriting)
objTextStream.WriteLine resultat
objTextStream.Close
Set objTextStream = Nothing
Set objFso  = Nothing

jean-marc

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 186 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_JMO
Messages postés
5
Date d'inscription
jeudi 28 septembre 2006
Statut
Membre
Dernière intervention
17 octobre 2007
0
Merci
Bonjour à tous, Je viens ici soliciter un peu de votre aide.Je vous explique :

J'ai un fichier txt avec une liste de nom de repertoire type :
"REPERTOIREXX1 - MODIFIE LE 02 06 07"
"REPERTOIREX2 - MODIFIE LE 04 09 07"
"REPERTOIREXXX3 - MODIFIE LE 10 09 07"
"REPERTOIRE4 - MODIFIE LE 20 11 06"

Est-il possible en VB de récuperer en sortie dans un autre fichier texte la liste des repertoires qui ont été modifié durant les derniers 15 jours.... en comparant donc les derniers caractères du nom de repertoire donc "02 06 07" par exemple pour le premier de la liste à la date du jour....

Merci pour votre aide...
Commenter la réponse de LePetitNiko
Messages postés
5
Date d'inscription
jeudi 28 septembre 2006
Statut
Membre
Dernière intervention
17 octobre 2007
0
Merci
Bonjour Jean-Marc,

   Merci à toi pour ton aide, ton script VBS approche du but, mais j'ai qq soucis en prenant l'exemple du fichier texte un peu plus bas,j'ai qq erreurs de comparaison, mais l'idée est la, le tout étant à la fin plutôt que d'avoir des msgbox, avoir la liste des repertoires dans < 42 jours un fichier txt. 

"07 01 LAVABO et VASQUES - MODIFIE LE 10 10 07"
"07 02 RECEVEURS et BAIGNOIRES - MODIFIE LE 04 09 07"
"07 03 PROTECTION DE DOUCHE - MODIFIE LE 16 11 06"
"07 04 ACC SDB ET WC - MODIFIE LE 10 09 07"
"07 05 MIROIRS ET ARMOIRES DE TOILETTE - MODIFIE LE 20 11 06"
"07 07 WC - MODIFIE LE 17 11 06"
"07 08 CUISINE - MODIFIE LE 22 11 06"
"08 01 ALIMENTATION- MODIFIE LE 28 12 06"
"08 02 ROBI DE SDB - MODIFIE LE 30 01 07"
"08 03 ROBI DE CUISINE - MODIFIE LE 30 01 07"
"08 04 HYDROMASSAGE - MODIFIE LE 05 03 07"
"08 05 TRAITEMENT DE L'EAU - MODIFIE LE 28 11 06"
Commenter la réponse de LePetitNiko
Messages postés
5
Date d'inscription
jeudi 28 septembre 2006
Statut
Membre
Dernière intervention
17 octobre 2007
0
Merci
Autant pour moi je rectifi, ton VBS marche très bien pour la comparaison, juste peut-on le compléter juste pour que les fichiers < 42 jours soit listé dans une fichier texte ?

En tout cas.... merci pour ce scripts, je commencais à devenir fou a force de pas trouver de solution.
Commenter la réponse de LePetitNiko
Messages postés
5
Date d'inscription
jeudi 28 septembre 2006
Statut
Membre
Dernière intervention
17 octobre 2007
0
Merci
Rapide, propre efficace... un script qui marche au poil... vraiment un GRAND merci !!!
Commenter la réponse de LePetitNiko