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