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 :

histoire de chemins ou comment retrouver ses petits?


Sujet :

VBScript

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Géologue
    Inscrit en
    Septembre 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Niger

    Informations professionnelles :
    Activité : Géologue
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 37
    Points : 27
    Points
    27
    Par défaut histoire de chemins ou comment retrouver ses petits?
    Bonjour,

    Je reviens vers le forum pour des problèmes de chemin que j'arrive pas à résoudre.

    Le premier souci : ligne 36 je crée un fichier ... que je voudrais bien ouvrir ligne 55 pour y écrire à l'intérieur.
    Le second, ligne 104 je n'arrive à a retrouver le nom et le chemin du fichier pour en obtenir la taille.

    Comme expliqué précédemment je suis débutant et ne fait du VBS que depuis qq jours ... Je travail sur un script de départ que l'on ma donné et cherche à en créer de nouveaux avec pour seul aide le net. J'avoue donc ne pas tout comprendre dans ce que j'ai sous la main et dans ce qui se trouve ci-dessous, mais qui est fonctionnel.

    Le résultat pourra donc vous sembler un peu brouillon (les puristes pourront avoir du mal à s'y retrouver ...???), et si les commentaire sont nombreux, c'est un peu dans un but d'apprentissage.

    Merci d'avance pour votre aide.

    Michel

    Code : 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
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    'Get Application object of the Windows shell.
    Set objShell = WScript.CreateObject("Shell.Application")
     
    'Ask the user to select a folder
    Set obFolder = objShell.BrowseForFolder (&H0&, "Select the folder to process", &H1&) 'les &H0& et &H1& sont obligatoirs pour la ligne 13
    Wscript.Echo obFolder 'réponse ok, medonne le nom du bon répertoire .... 1 PathFichier ajoute le chemin complet
     
    Set FSO = CreateObject("Scripting.FileSystemObject")
    PathFichier = FSO.GetParentFolderName(wscript.ScriptFullName) & "\" & PathFichier
    'Wscript.echo "le chemin est :" & PathFichier 'me donne le bon chemin - la ou se trouve le Script et le fichier Last Date Processing.txt...!!! OK
     
    'Ici il faut vérifier l'existance du fichier Date Last Processing
    'S'il n'existe pas le créer et le laisser vide
    'A faire!
     
     
     
    'Trouve la taille du répertoire avant process
    PathRep = obFolder.ParentFolder.ParseName(obFolder.Title).Path
    'wscript.echo "le chemin est :" & PathRep ' Debug ok
    Set RepTrav = FSO.GetFolder(PathRep)
    TailleAvant = RepTrav.Size
    Wscript.echo "Taille du répertoire =" & TailleAvant ' Debug ok
     
    'ici il faut créer un fichier dans le repertoir du Script.
    'le nom est la date d'execussion (AAAAMMJJ-HHMMSS) plus nom du répertoir "racine"
    'Il va contenir sur le premiére ligne la taille de départ du répertoir
    'la taille du repertoir en fin de process (seconde ligne)
    'puis les nom des fichier modifié avec taille avant et taille après
     
    Maintenant = Now
    'Wscript.echo Now ' Debug ok
    DateTitre = Mid(Maintenant, 7, 4) & Mid(Maintenant, 4, 2) & Left(Maintenant, 2) & " - " & Mid(Maintenant, 12, 2) & Mid(Maintenant, 15, 2) & Right(Maintenant, 2)
    'Wscript.echo DateTitre ' Debug ok
    'Comment récupérer le nom du fichier crée ci-dessous ligne 35 pour écrire dedans ligne 49 et suivantes
    Set FichierExecussion = FSO.CreateTextFile(PathFichier & DateTitre & " Réduction de " & obFolder & ".txt") ' Debug ok fichier crée
    'NonFichier = ????
    'Wscript.Echo NomFichier
     
    'Déclaration des constantes pour lecture écriture du fichier
    'On devrait pouvooir utilser ForWriting à la place de ForAppending)
    Const ForWriting = 2
    Const ForReading = 1
    Const ForReading = 1
    Const ForAppending = 8
     
    'comment donner le nom et le chemin du fichier crée !!!!
    'Wscript.echo PathFichier ' Debug ok ponte vers les rep du script
    'Set f =  fso.OpenTextFile(PathFichier & nomfichier, ForAppending, TRUE)
    'f.write "début d'execussion :" & Maintenant
    'f.write "taille avant réduction :" & TailleAvant
     
     
     
    'Recherche de la dernière ligne du fichier
    Set f = FSO.OpenTextFile(PathFichier & "Last Date Processing.txt", ForReading, True) 'on ne crée pas de nouveau fichier, si omis pas de nouveau fichier
    do Until  f.AtEndOfStream = True
    	LastDate = f.readLine ()
    Loop
    'Wscript.echo "Date lue :" & LasteDate 'me retourne bien la dernière date lue dans le fichier
     
    'transforme la date et l'heure en nombre : AAAAMMJJ et HHMMSS
    JourNum = Mid(LastDate, 7, 4) & Mid(LastDate, 4, 2) & Left(LastDate, 2)
    'Wscript.echo "JourNum =" & JourNum ' Debug ok
    HeureNum = Mid(LastDate, 12, 2) & Mid(LastDate, 15, 2) & Right(LastDate, 2)
     
     
    'Start WellCAD
    	Set WCAD = CreateObject("WellCAD.Application")
    	WCAD.ShowWindow()
     
    	'SaveAs les ancien fichier avec _XX à la fin
    	ProcessFolder WCAD, FSO, obFolder.self.Path
     
    Sub ProcessFolder(WCAD, FSO, FolderPath) 'supression de PATH
     
    	'Get access to the folder
    	Set obFolder = FSO.GetFolder(FolderPath)
     
    	For Each obFile In obFolder.Files
     
    		'Check if it is a WCL file containing diagraphie in its name
    		If (StrComp(Right(obFile.Name, 3), "wcl", 1) = 0) AND _
    			(InStr(1, obFile.Name, "_xx", 1) = 0) THEN
     
    		Set M_file = FSO.GetFile(obfile)
    		LastMod = M_file.DateLastModified
    		'Wscript.echo LastMod ' Debug ok me donne la date de dernière modif du fichier
    		'transforme la date et l'heure en nombre : AAAAMMJJ et HHMMSS
    		JourLastMod = Mid(LastMod, 7, 4) & Mid(LastMod, 4, 2) & Left(LastMod, 2)
    		'Wscript.echo "Jour LastMod =" & JourLastMod ' Debug ok
    		HeureLastMod = Mid(LastMod, 12, 2) & Mid(LastMod, 15, 2) & Right(LastMod, 2)
    		'Wscript.echo "HeureNum =" & HeureLastMod ' Debug ok
     
    			If JourNum <= JourLastMod And HeureNum < HeurelastMod Then
    				Set Fichier = obfile
    				'Wscript.echo "nom fichier :" & Fichier ' Debug ok me retourne le nom et le chemin du fichier
    				Set FichierWCL = FSO.GetFile(Fichier)
    				FichierTailleAvant = FichierWCL.Size
    				'Wscript.echo "Taille avant :" & FichierTailleAvant ' debug ok, me donne la taille du fichier
    				Set obBHDoc = WCAD.OpenBorehole(obFile.Path)
     
    				'SaveAs the WCL file
    				obBHDoc.SaveAs Left(obFile.Path, Len(obFile.Path) - 4) & "_xx" & Right(obFile.Path, 4)
    				'Comment obtenir le non et le chemin du fichier crée pour en sortir la taille
    				Set obBHDoc = Nothing
    				WCAD.CloseBorehole FALSE
    			End If
     
    		End If
     
    	Next
     
    	'Loop on all the subfolders and process each of them
    	For Each obSubFolder In obFolder.SubFolders
    		ProcessFolder WCAD, FSO, obSubFolder.Path 'supression de PATH
    	Next
     
    End Sub
     
     
     
     
    'ceci doit se trouver en fin de script....
    'Get systeme date and time et écrit la date et l'heure de fin du script
    FinProcess = Now 'date est heure actuels
    'Wscript.echo "Date et heure système :" & FinProcess
    'Write syteme date and time in file Last Date Processing.txt
    Wscript.echo PathFichier
     Set f = fso.OpenTextFile(PathFichier & "Last Date Processing.txt", ForAppending, TRUE)
     f.write (FinProcess) & VbCrlf ' Debug ok C'est tout bon!
     
     'Récupére la taille du répertoire de travail en fin de traitement
    'PathRep = obFolder.ParentFolder.ParseName(obFolder.Title).Path
    'wscript.echo "le chemin est :" & PathRep ' Debug ok
    'Set RepTrav = FSO.GetFolder(PathRep)
    'PathRep = obFolder.ParentFolder.ParseName(obFolder.Title).Path
    'Set RepTrav = FSO.GetFolder(PathRep)
    TailleApres = RepTrav.Size
    Wscript.echo "Taille du répertoire =" & TailleApres

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Géologue
    Inscrit en
    Septembre 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Niger

    Informations professionnelles :
    Activité : Géologue
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 37
    Points : 27
    Points
    27
    Par défaut Suite et éclaircissement
    Bonjour et milles excuses ....

    Mon post précédent n'est pas très clair!!!

    Concernant le premier soucis ... je ne trouve pas comment ouvrir le fichier que viens de créer ... retrouver sons nom et son chemin! Je sais (ou pense savoir) , c'est certainement bêêête comme chou, mais je ne trouve pas comment faire!!!

    Pour le second j'espère avoir été assez explicite?

    Quelqu'un pour aider un débutant qui sèche depuis plus de 24h!!! ????
    Merci d'avance

  3. #3
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    [0]
    PathFichier = FSO.GetParentFolderName(wscript.ScriptFullName) & "\" & PathFichier
    Pourquoi ça: la dernière PathFichier, qui est vide à cet etape, non? donc, pourquoi faire?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PathFichier = FSO.GetParentFolderName(wscript.ScriptFullName) & "\"
    [1]
    'ici il faut créer un fichier dans le repertoir du Script.
    'le nom est la date d'execussion (AAAAMMJJ-HHMMSS) plus nom du répertoir "racine"
    'Il va contenir sur le premiére ligne la taille de départ du répertoir
    'la taille du repertoir en fin de process (seconde ligne)
    'puis les nom des fichier modifié avec taille avant et taille après

    Maintenant = Now
    'Wscript.echo Now ' Debug ok
    DateTitre = Mid(Maintenant, 7, 4) & Mid(Maintenant, 4, 2) & Left(Maintenant, 2) & " - " & Mid(Maintenant, 12, 2) & Mid(Maintenant, 15, 2) & Right(Maintenant, 2)
    'Wscript.echo DateTitre ' Debug ok
    Alors là, je ne pense pas c'est bien solide; il semble dépendre trop les configurations locales et pour moi ça ne donne pas le bon résultat.

    [1.1] Il vaut mieux le faire d'une façon plus solide.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Maintenant = Now
    DateTitre=year(Maintenant) & right("0" & month(Maintenant), 2) & right("0" & day(Maintenant),2)
    DateTitre=DateTitre & "-" & right("0" & hour(Maintenant),2) & _
        right("0" & minute(Maintenant),2) & right("0" & second(Maintenant),2)
    [2]
    'Comment récupérer le nom du fichier crée ci-dessous ligne 35 pour écrire dedans ligne 49 et suivantes
    Set FichierExecussion = FSO.CreateTextFile(PathFichier & DateTitre & " Réduction de " & obFolder & ".txt") ' Debug ok fichier crée
    'NonFichier = ????
    'Wscript.Echo NomFichier
    Là, FichierExecussion est un objet de type TextStream: il s'en fiche pas mal le path du fichier (manquant ce genre de méthode).

    Mais, franchement, est-ce que MonFichier n'est justement pas ce que vous fournissez comme le premier paramètre qui est un path complet? Sinon, vous connaissez le CurrentDirectory (la répertoire courrante) facilement ou par la moyen comme la ligne 9?

    En plus, il vaut toujours la peine de fermer le TextStream quand il a fini son boulot?

    Donc, je pense qu'il doit réécrire comme ça tout simplement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    NomFichier=PathFichier & DateTitre & " Réduction de " & obFolder & ".txt"
    Set FichierExecussion = FSO.CreateTextFile(NomFichier)
    'etc etc si il y d'autre à faire avec FichierExecussion
    FichierExecussion.close

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Géologue
    Inscrit en
    Septembre 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Niger

    Informations professionnelles :
    Activité : Géologue
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 37
    Points : 27
    Points
    27
    Par défaut Merci pour les conseils
    Bonjour Tsuji,
    Me voici de retour après une petite absence du net. Je te remercie pour tes conseils que je vais tester.

    En fait j'ai commencé à reprendre mon script depuis le début.

    Débutant je suis !!! et je cherchais à modifier quelque chose d'existant quand je me suis aperçu que ce n'était sans doute pas le plus facile.
    Mon gros problème est que je suis loin de tout et qu'il est difficile de trouver des explication claires, d'ou mon recours à ce forum.
    Pour ce qui est de la doc, tout ce que j'ai trouvé est très technique ... et donc pas toujours facile d'accès pour moi qui manque parfois de définition est de vocabulaire de programmation.

    Je vais de ce pas essayer de tester tes remarques pour lesquels je te remercie d'avoir bien voulu m'accorder un peu de temps.

Discussions similaires

  1. Retrouver ses petits
    Par Yves07 dans le forum Tkinter
    Réponses: 10
    Dernier message: 03/06/2014, 11h19
  2. [AC-2010] Comment retrouver ses petits (ancien de AC2003)
    Par petitours dans le forum IHM
    Réponses: 6
    Dernier message: 15/06/2012, 11h29
  3. comment retrouver ses propres messages
    Par aktos dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 2
    Dernier message: 06/09/2008, 12h12
  4. Réponses: 8
    Dernier message: 18/09/2007, 18h04

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