Page 1 sur 1
[R] Format de date - au lieu de /
Posté : sam. 10 mai 2008 23:35
par sebnantes
Bonsoir,
J'ai écris et testé un script pour créer un fichier texte portant la date de la veille :
Code : Tout sélectionner
#include <File.au3>
#include <Process.au3>
#include <Date.au3>
$hier = _DateAdd("D",-1,_NowCalc())
$hier = _DateTimeFormat($hier, 2)
_RunDos("type c:\log\temp\*.txt >> c:\log\"&$hier&".txt")
FileDelete ( "c:\log\temp\*" )
la date générée contient des / et il n'est possible de créer des nom de fichier sous dos avec des / voilà pourquoi la commande dos ne fonctionne pas.
je ne peux pas modifier les options régionale pour que Dos utilise - au lieu de /
est-il possible de modifier le format de la date générée par autoit pour utiliser des - au lieu des / ?
j'ai vu _DateTimeSplit mais comment l'utiliser ici ? MERCI
Re: [..] format de date - au lieu de /
Posté : dim. 11 mai 2008 00:52
par sebnantes
j'ai trouvé tout seul ! mais si cela peut aider quelqu'un :
Code : Tout sélectionner
#include <File.au3>
#include <Process.au3>
#include <Date.au3>
$hier = _DateAdd("d",-1,_NowCalc())
Dim $MyDate
Dim $MyTime
_DateTimeSplit($hier,$MyDate,$MyTime)
_RunDos("type c:\log\temp\*.txt >> c:\log\"&$MyDate[3]&"-"&$MyDate[2]&"-"&$MyDate[1]&".txt")
FileDelete ( "c:\log\temp\*" )
bonne nuit
Re: [R] Format de date - au lieu de /
Posté : dim. 11 mai 2008 02:10
par Tlem
Vous pouvez aussi utiliser tout simplement ceci :
Code : Tout sélectionner
$hier = StringReplace(_DateTimeFormat(_DateAdd("D",-1,_NowCalc()), 2), "/", "-")
Bon c'est le résultat de 4 opérations au lieu de 3 dans votre cas, mais bon ça tient sur une ligne, et le résultat est plus court à écrire dans votre commande _RunDos, et puis j'utilise une seule variable au lieu de 3.

Re: [R] Format de date - au lieu de /
Posté : dim. 11 mai 2008 12:32
par sebnantes
Merci, c'est pas bête et j'aime bien aussi raccourci le code !
mais je viens de modifier mon code et finalement split est plus avantageux dans mon cas car ce script s'éxécute à J+1 pour travailler les logs de la veille, finallement :
Code : Tout sélectionner
#include <File.au3>
#include <Process.au3>
#include <Date.au3>
$hier = _DateAdd("d",-1,_NowCalc())
Dim $MyDate, $MyTime
_DateTimeSplit($hier,$MyDate,$MyTime)
_RunDos("type c:\log\temp\"&$MyDate[3]&"*.txt >> c:\log\"&$MyDate[3]&"-"&$MyDate[2]&"-"&$MyDate[1]&".txt")
FileDelete ("c:\log\temp\"&$MyDate[3]&"*")
Encore merci d'être là et très bonne fin de weekend !
Re: [R] Format de date - au lieu de /
Posté : ven. 06 juin 2008 16:53
par sebnantes
Bonjour,
J'ai un bug dans mon script et j'ai besoin d'aide !
_DateAdd("d",-1,_NowCalc())
me donne le jour précédent sous la forme 2008/06/05
_DateTimeSplit($hier,$MyDate,$MyTime)
me permet de découper : MyDate[3]=5, MyDate[2]=6 et MyDate[1]=2008
Comment obtenir MyDate[3]=05 et MyDate[2]=06, avec le jour et le mois sur 2 chiffres ? sans s'appuyer sur les paramètres régionaux du PC ???
Merci beaucoup !
Re: Format de date - au lieu de /
Posté : ven. 06 juin 2008 17:13
par Voodoo
Re: Format de date - au lieu de /
Posté : ven. 06 juin 2008 17:22
par sebnantes
Merci mais ce n'est pas pour de l'affichage, je souhaite utiliser ces variables!
Re: Format de date - au lieu de /
Posté : ven. 06 juin 2008 17:27
par Tlem
Pourquoi n'aimez vous pas mon code ...
Code : Tout sélectionner
#include <Date.au3>
#include <Array.au3>
$MyDate = StringSplit(_DateTimeFormat(_DateAdd("D",-1,_NowCalc()), 2), "/")
_ArrayDisplay($MyDate,"")
Re: [R] Format de date - au lieu de /
Posté : ven. 06 juin 2008 20:11
par sebnantes

a cause du paramètre 2 :
"2 = Display a date using the short date format specified in your computer's regional settings."
Hors je ne peux pas me baser sur les options régionales qui ont été modifiées et cela ne donne donc pas le résultat escompté ! les options régionales sont j/m/aaaa et non jj/mm/aaaa
votre code ne fonctionne donc pas...
Re: [R] Format de date - au lieu de /
Posté : ven. 06 juin 2008 21:50
par Tlem
Bon ben alors soyons basique :
Code : Tout sélectionner
#include <Date.au3>
#include <Array.au3>
Dim $MyDate, $MyTime
_DateTimeSplit(_DateAdd("d",-1,_NowCalc()),$MyDate,$MyTime)
$MyDate[2] = StringRight("0" & $MyDate[2],2)
$MyDate[3] = StringRight("0" & $MyDate[3],2)
_ArrayDisplay($MyDate,"")
Re: [R] Format de date - au lieu de /
Posté : ven. 06 juin 2008 23:13
par sebnantes
SUPER !!!
T'es un chef !
je t'aime
bonne nuit
Re: [R] Format de date - au lieu de /
Posté : ven. 06 juin 2008 23:18
par Tlem
sebnantes a écrit :je t'aime
Pas tant, pas tant ...
