|
|
|
|
Configuration: Windows XP Firefox 2.0.0.12
|
slt
si tu place le fichier.vbs dans le répertoire qui contient les fichier.nc1 tu obtiendras un répertoire contenant les copies modifiées de tout les fichiers.nc1 Dans un deuxième temps, je peux coder le remplacement des originaux par les copies. Mais, comme je l'ai dit, pour l'instant c'est fonctionnel si tous les fichiers.nc1 sont dans le même répertoire. Sinon, je vais avoir besoin de plus d'info sur la hierarchie ;-p voici le code à insérer dans un fichier modifier_nc1.vbs
dim FSO: Set FSO = CreateObject("Scripting.FileSystemObject")
Dim modifier: set modifier = FSO.opentextfile("modif.xsr",1)
set tempfold = FSO.CreateFolder("nc1_copy")
do while not modifier.atendofstream
lect = modifier.readline
separateur=InStr(lect, ";")
dafile=Mid(lect,1,separateur-2)
dafile=dafile & ".nc1"
damod=Mid(lect,separateur+2)
set infile = FSO.opentextfile(dafile,1)
set dacopy = FSO.opentextfile(tempfold+"\"+dafile,8,true)
nbrline=0
do while not infile.atendofstream
readline = infile.readline
nbrline=nbrline+1
if nbrline=3 then
dacopy.writeline(damod)
else
dacopy.writeline(readline)
end if
loop
loop
modifier.close
infile.close
dacopy.close
msgbox "~=. Modifications terminées .=~",64,"~= NC1 Modif =~"
Ensuite, pour la création des répertoire relatifs aux modifs, sont-ce les copies modifiées des fichiers.nc1 que tu veux envoyer dedans ? Il reste toujours la question de savoir où créer les répertoires...
|
Oups!
j'ai oublié, si tu veux, je peux virer le séparateur ; de la liste. Raynald |
|
slt
L'erreur Mid semble être provoquée par la présence de ligne vide à la fin du fichier.xsr Peut-on les éviter ?
|
Je rajoute ceci :
Liens vers les fichiers, pour faire des tests. les fichiers .nc1 à mettre dans un répertoire DSTV: http://sgane.chez-alice.fr/1_dstv/DSTV.zip Le fichier .xsr au même rang que le répertoire: http://sgane.chez-alice.fr/1_dstv/modif.xsr le fichier .vbs: http://sgane.chez-alice.fr/1_dstv/modifier_nc1.vbs |
|
alors voilà le code qui créer les copies dans chaque répertoire idoine.
fichier.vbs et fichier.xsr sont au même niveau que rep DSTV il ne restera plus qu'à décider de la suppression des sources dans le DSTV qd on sera sûr du résultat ;-)
dim FSO: Set FSO = CreateObject("Scripting.FileSystemObject")
Dim modifier: set modifier = FSO.opentextfile("modif.xsr",1)
do while not modifier.atendofstream
lect = modifier.readline
separateur=InStr(lect, ";")
dafile=Mid(lect,1,separateur-2)
dafile=dafile & ".nc1"
damod=Mid(lect,separateur+2)
if FSO.FolderExists("DSTV\"+damod)<>true then
makit=FSO.CreateFolder("DSTV\"+damod)
end if
set tempfold = FSO.GetFolder("DSTV\"+damod)
set infile = FSO.opentextfile("DSTV\"+dafile,1)
set dacopy = FSO.opentextfile(tempfold+"\"+dafile,8,true)
nbrline=0
do while not infile.atendofstream
readline = infile.readline
nbrline=nbrline+1
if nbrline=3 then
dacopy.writeline(damod)
else
dacopy.writeline(readline)
end if
loop
loop
modifier.close
infile.close
dacopy.close
msgbox "~=. Modifications terminées .=~",64,"~= NC1 Modif =~"
|
houlala, je viens de visionner le modif.xsr ;-/
si les espaces ne peuvent être supprimés, peut-on être sûr qu'à l'avenir les xsr seront tous formatés ainsi ? autrement je peux aussi essayer de réécrire le xsr... comment est-il créée au départ ?
|
J'ai repris le fichier.xsr
pour en réduire le nombre d'espace. http://sgane.chez-alice.fr/1_dstv/modif.xsr |
|
ok, merci, j'y suis presque... |
|
bon, alors à ce stade tout devrait fonctionner
mon test bloque sur L1.nc1 parce qu'il n'est pas dans DSTV les fichiers manquants dans DSTV génèrent une erreur L1-L2...L18->L22 etc... il semble qu'il en manque pas mal ;-( à partir de là, il faudra effacer les répertoires créés avant de pouvoir relancer la procédure
dim FSO: Set FSO = CreateObject("Scripting.FileSystemObject")
Dim modifier: set modifier = FSO.opentextfile("modif3.xsr",1)
do while not modifier.atendofstream
lect = modifier.readline
separateur=InStr(lect, ";")
dim recurs:recurs=7
dim linkto:linkto=""
do while FSO.FileExists(linkto)<>true
recurs=recurs-1
dafile=Mid(lect,3,recurs)
dafile=dafile & ".nc1"
linkto="DSTV\"+dafile
'msgbox dafile
loop
damod=Mid(lect,separateur+2)
if FSO.FolderExists("DSTV\"+damod)<>true then
makit=FSO.CreateFolder("DSTV\"+damod)
end if
set tempfold = FSO.GetFolder("DSTV\"+damod)
set infile = FSO.opentextfile("DSTV\"+dafile,1)
set dacopy = FSO.opentextfile(tempfold+"\"+dafile,8,true)
nbrline=0
do while not infile.atendofstream
readline = infile.readline
nbrline=nbrline+1
if nbrline=3 then
dacopy.writeline(damod)
else
dacopy.writeline(readline)
end if
loop
loop
modifier.close
infile.close
dacopy.close
msgbox "~=. Modifications terminées .=~",64,"~= NC1 Modif =~"
j'ai pris pour base que les fichiers.nc1 ne dépassent pas 6 caractères
|
|
j'ai vérifié le process en supprimant de modif.xsr les fichiers qui ne sont pas dans DSTV et j'arrive au bout...
Il ne reste plus qu'à faire correspondre modif.xsr et le contenu de DSTV (je l'aurai, un jour, je l'aurai... :o)
|
|
j'utilise la dernière version xsr, celle avec moins d'espaces.
... to be continued
|
|
Il ne te reste qu'à valider le problème comme étant résolu...
bonne continuation
|
|
petite modif et ajout de l'option nettoyage
.../... loop infile.close dacopy.close cleanorifile=FSO.DeleteFile(linkto) loop modifier.close .../... test ok chez moi
|
Merci à toi de m'avoir donné l'occasion d'être utile...
Pour ce qui est de marquer le problème comme étant résolu, c'est moi qui ait besoin d'aide :-) A+
|
|
Salut Sgane,
tu penses bien que je vais y travailler... Je t'envoie la fonction dès qu'elle est vérifiée opérationnelle.
|
|
Ca yest, c'est prêt.
Bon je te remets tout le code parce qu'il a fallu que je change de stratégie. Les liste des fichiers manquants est stockée dans M_DSTV(date et heure).txt au même niveau que modifs.xsr et le script.vbs j'espère que t'auras d'aussi bons résultats que moi
dim FSO: Set FSO = CreateObject("Scripting.FileSystemObject")
Dim modifier: set modifier = FSO.opentextfile("modif.xsr",1)
dim pas_dans_rep
dajh=Cstr(Date())
hajh=Cstr(Time())
sjour=Mid(dajh,1,2)
smois=Mid(dajh,4,2)
san=Mid(dajh,7,4)
sdate=sjour+smois+san
sheure=Mid(hajh,1,2)
smin=Mid(hajh,4,2)
ssec=Mid(hajh,7,4)
stime=sheure+smin+ssec
recept_missing="M_DSTV"+sdate+stime+".txt"
do while not modifier.atendofstream
lect = modifier.readline
separateur=InStr(lect, ";")
dim recurs:recurs=7
dim linkto:linkto=""
dim char_blank:char_blank=" "
dim lkat:lkat=recurs
do while lkat<>0
'msgbox "lkat " & lkat
recurs=recurs-1
dafile=Mid(lect,3,recurs)
lkat=Instr(dafile,char_blank)
'msgbox "next tour with "+dafile
loop
dafile=dafile+".nc1"
linkto="DSTV\"+dafile
if not FSO.FileExists(linkto) then
set pas_dans_rep=FSO.opentextfile(recept_missing,8,true)
pas_dans_rep.writeline linkto
pas_dans_rep.close
else
damod=Mid(lect,separateur+2)
if FSO.FolderExists("DSTV\"+damod)<>true then
makit=FSO.CreateFolder("DSTV\"+damod)
end if
set tempfold = FSO.GetFolder("DSTV\"+damod)
set infile = FSO.opentextfile("DSTV\"+dafile,1)
set dacopy = FSO.opentextfile(tempfold+"\"+dafile,8,true)
nbrline=0
do while not infile.atendofstream
readline = infile.readline
nbrline=nbrline+1
if nbrline=3 then
dacopy.writeline(damod)
else
dacopy.writeline(readline)
end if
loop
infile.close
dacopy.close
cleanorifile=FSO.DeleteFile(linkto)
end if
loop
modifier.close
msgbox "~=. Modifications terminées .=~",64,"~= NC1 Modif =~"
... Et c'est môa qui l'aie fait... ;o)
|
C'était un plaisir !
Bonne journée |