StrToDate

sany2000 Messages postés 3 Date d'inscription vendredi 2 juillet 2004 Statut Membre Dernière intervention 22 novembre 2006 - 5 avril 2005 à 16:38
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Derniè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.

Quelqu'un a t'il la solution a ce probleme ?

D'avance merci !

Sany

7 réponses

WhiteHippo Messages postés 1154 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 5 avril 2012 3
5 avril 2005 à 19:49
Le problème vient de la façon dont Delphi gère le scan de la chaine qu'on lui passe comme date.
En mettant :
FormatSettings.DateSeparator := chr(0);

Delphi s'attend à trouver une date de la forme :
'10'#0'12'#0'2005' // le séparateur étant #0 ou chr(0) si tu préfères.

Il lui faut FORCEMENT un séparateur !!!

Donc, il n'y a me semble t-il pas d'autres solutions, si tu ne veux pas utiliser de separateur, que d'ecrire ta propre routine de gestion de date.

Cordialement.
0