Page 1 sur 1
[R] Comparer la date de deux fichiers
Posté : mer. 09 juil. 2008 17:46
par dams000
Bonjour,
Je cherche à comparer la date et heure de deux fichiers pour savoir quelle date de dernière modification et la plus récente.
Avec FileGetTime on a bien la date et heure du fichier mais je trouve rien pour en comparer deux.
> < = ne fonctionne pas.
Merci de votre aide.
Dams
Re: Comparer la date de deux fichiers
Posté : mer. 09 juil. 2008 18:01
par Tlem
Merci de lire les règles de présentation d'un post :
http://www.autoitscript.fr/forum/viewto ... ?f=3&t=595
En utilisant l'outil de recherche du forum, avec les mots clés : comparer date
vous auriez trouvé ceci :
http://www.autoitscript.fr/forum/viewto ... parer+date
qui répond en grande partie à votre question.
Re: [..] Comparer la date de deux fichiers
Posté : jeu. 10 juil. 2008 09:39
par dams000
Bonjour,
Désolé pour le [...] oublié dans le titre.
Par contre, j'ai utilisé l'outil de recherche du forum et j'ai bien trouvé le post en question, malheuresement pour moi c'est pas aussi simple. Il y a bien la réponse de jl56 qui s'approche, sauf que là c'est uniquement la date et moi c'est une comparaison date/heure entre deux fichiers pour savoir lequel est le plus recent ou s'ils sont identiques.
Il me reste la solution de sylvanie avec des tests en cascade (en gros faire ma propre fonction), mais j'avais espoir qu'une fonction existe déjà...
Si quelqu'un a une fonction ou connait une fonction qui fait ça, merci par avance.
Dams
Re: [..] Comparer la date de deux fichiers
Posté : jeu. 10 juil. 2008 12:48
par Tlem
Heuuu cela m'avais parus évident que la solution vous aurait sauté aux yeux en lisant ce post !!!
Mais bon c'est pas grave, je vais vous donner quelques explications supplémentaires :
La fonction FileGetTime ( "MonFichier1.xyz" , 0, 1) vous donnera la date de dernière modification du fichier dans le format : YYYYMMDDHHMMSS
Donc une simple comparaison suffit pour savoir si le fichier est plus vieux ou pas qu'une autre date donnée.
Maintenant, si c'est pour comparer la date et l'heure de deux fichiers, vous avez une fonction toute faite du nom de : _Date_Time_CompareFileTime
Voilà.
Re: [..] Comparer la date de deux fichiers
Posté : jeu. 10 juil. 2008 14:23
par timmalos
Ou alors renseignez vous sur l'affichage de l'heure et de la date sous la forme UTC.
Je ne me souviens plus exactement d'ou elle part, mais l'essentiel est que cette forme ci prend en compte la date et l'heure sous un même chiffre.
Il me semble que cette fonction équivaut au nombre de secondes depuis le premier janvier 1970.
Ca donne un nombre du style 854654321654987.
Après, il est facile de comparer les 2 nombres avec un simple >=.
Il y a plusieurs UDF deja faits traiitant cette forme UTC.
Re: [..] Comparer la date de deux fichiers
Posté : jeu. 10 juil. 2008 14:26
par timmalos
Tu peux egalement , si tu souhaite faire une fonction en cascade, t'aider de cette fonction qui compare 2 versions (1.0.0.2 et 1.2.0.0 par exemple)
En modifiant quelques trucs, tu peux facilement trouver la fonction que tu as besoin:)
► Afficher le texteCode
Code : Tout sélectionner
Func _CompareVersions($s_Vers1, $s_Vers2, $i_ReturnFlag = 0)
If $s_Vers1 = '' Then Return 0
Local $i, $i_Vers1, $i_Vers2, $i_Top
Local $a_Vers1 = StringSplit($s_Vers1, '.')
Local $a_Vers2 = StringSplit($s_Vers2, '.')
$i_Top = $a_Vers1[0]
If $a_Vers1[0] < $a_Vers2[0] Then
$i_Top = $a_Vers2[0]
EndIf
For $i = 1 To $i_Top
$i_Vers1 = 0
$i_Vers2 = 0
If $i <= $a_Vers1[0] Then
$i_Vers1 = Number($a_Vers1[$i])
EndIf
If $i <= $a_Vers2[0] Then
$i_Vers2 = Number($a_Vers2[$i])
EndIf
If $i_Vers1 > $i_Vers2 Then
$v_Return = 1
ExitLoop
ElseIf $i_Vers1 < $i_Vers2 Then
$v_Return = 0
ExitLoop
Else
$v_Return = -1
EndIf
Next
If $i_ReturnFlag Then
Select
Case $v_Return = -1
SetError(1)
Return 0
Case $v_Return = 1
Return $s_Vers1
Case $v_Return = 0
Return $s_Vers2
EndSelect
ElseIf $v_Return = -1 Then
SetError(1)
Return 0
Else
Return $v_Return
EndIf
EndFunc ;==>_CompareVersions
[R] Comparer la date de deux fichiers
Posté : ven. 11 juil. 2008 15:12
par dams000
Merci pour votre aide, j'avais mal utilisé la fonction FileGetTime()
Je fais des essais pour voir avec la methode UTC.
Merci.