sany2000
Messages postés3Date d'inscriptionvendredi 2 juillet 2004StatutMembreDernière intervention22 novembre 2006
-
5 avril 2005 à 16:38
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 2013
-
6 avril 2005 à 21:19
Bonjour,
Je souhaite utiliser la fonction StrToDate (const S: string; const FormatSettings: TFormatSettings): TDateTime, pour convertir une chaine de caractere en date.
Cela fonctionne correctement lorsque le separateur de Date (FormatSettings.DateSeparator)est différent du caractère vide.
Autrement dit cela fonctionne parfaitement avec des string du type '13/12/2005' ou '12/13/2005' avec un DateSeparator egal à : '/', ou avec des string du type '13-12-2005' ou '12-13-2005' avec un DateSeparator égal à '-'.
Le probleme arrive lorsque j'ai des dates du style '13122005' ou '12132005'. Dans ce cas de figure, le Separateur de date n'est pas explicite. Donc je ne sais pas quel caractère je dois passer a FormatSettings.DateSeparator. Lorsque je fais : FormatSettings.DateSeparator := chr(0), pour specifier le caractère nul, cela ne fonctionne pas non plus.
sany2000
Messages postés3Date d'inscriptionvendredi 2 juillet 2004StatutMembreDernière intervention22 novembre 2006 6 avril 2005 à 09:40
Merci beaucoup pour vos reponses !
Cela confirme donc que dans le cas de figure qui m'interesse, StrToDate ne peut pas etre utilisé en l'Etat...
Je vais donc soit creer ma propre fonction de gestion de dates, soit ajouter un separateur lorsqu'il n'en existe pas...
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 6 avril 2005 à 12:43
Attention Japee, si tu ajoutes des caractères dans ta chaine, alors la deuxième position à examiner n'est plus la quatrième mais la cinquième. Il faut donc que tu remplaces :
if i in [2, 4] then
par
if i in [2, 5] then
japee
Messages postés1727Date d'inscriptionvendredi 27 décembre 2002StatutModérateurDernière intervention 6 novembre 20218 6 avril 2005 à 17:16
Que nenni, que nenni, Delphiprog
Mon code peut bluffer à la première lecture.
Mais je ne suis pas tombé dans le piège infâme qui m'était tendu...
En fait, je rajoute le caractère séparateur dans Result, et non dans le
String passé en paramètre, qui lui-même n'est pas modifié.
J'aurais par contre pu ajouter une protection plus pointue de la
validité du String, mais je suis parti du principe... que j'avais pas
envie, et que ça avait sans doute été fait ailleurs !
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 6 avril 2005 à 21:19
Arf, il a raison le bougre
Sans doute que je n'avais pas envie de réfléchir trop longtemps et, du coup, c'est moi qui suis tombé dans le panneau. Bien vu Japee.
Précision : FormatMaskText est déclarée dans MaskUtils. Je ne connaissais pas cette fonction. Merci Kenavo.