Accueil > Forum > > > > StrToDate
StrToDate
mardi 5 avril 2005 à 16:38:18 |
StrToDate

sany2000
|
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
|
|
mardi 5 avril 2005 à 19:49:17 |
Re : StrToDate

WhiteHippo
|
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.
|
|
mercredi 6 avril 2005 à 02:01:03 |
Re : StrToDate
|
mercredi 6 avril 2005 à 09:40:14 |
Re : StrToDate

sany2000
|
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...
Bonne journée !
|
|
mercredi 6 avril 2005 à 12:43:33 |
Re : StrToDate

Delphiprog
|
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] thenpar if i in [2, 5] then
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient. 
|
|
mercredi 6 avril 2005 à 16:16:30 |
Re : StrToDate

Kenavo
|
On peut utiliser (également dans Delphi 4) la fonction FormatMaskText
s:= FormatMaskText('00/00/0000;0;0','06042005');
Retourne bien '06/04/2005' dans s.
Il y a quand même quelque chose de rigolo :
var
FormatSettings : TFormatSettings;
s : string;
Date : TDateTime;
begin
GetLocaleFormatSettings(0, FormatSettings);
FormatSettings.ShortDateFormat := 'ddmmyyyy';
s := DateToStr(Now, FormatSettings); // Résultat '06042005' (aujourd'hui seulement)
Date := StrToDate(s,FormatSettings); // Erreur '06042005' n'est pas une date correcte !
end;
Là mon Dédé (c'est comme ça que j'apelle mon Delphi), tu déconnes !
Ken@vo
Code, Code, Codec !
P.S. Je savais pas qu'il y avait autant de choix dans les dates.
|
|
mercredi 6 avril 2005 à 17:16:50 |
Re : StrToDate

japee
|
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 !
Bonne prog'
|
|
mercredi 6 avril 2005 à 21:19:55 |
Re : StrToDate

Delphiprog
|
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.
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient. 
|
|
Cette discussion est classée dans : date, string, dateseparator, formatsettings, strtodate
Répondre à ce message
Sujets en rapport avec ce message
Fichier typé (RECORD) [ par selma-elec ]
UN fichier à été créer sur disque avec borland pascal 7.0 avec des enregistrement de ce type :Type Tata = Record Chemin : integer
fonction opposée a FormatDateTime [ par Sat83 ]
Bonjour, Je suis a la recherche d'une fonction qui fait l'inverse de la fonction FormatDateTime.Je m'explique: plutot que d'avoir en entrée un TDateTi
comment modifier le 0 en 1536 dans un cookie [ par Kurtounet ]
Bonjour Amis développeur. Voilà mon problème. J' ai intégré à mon application un bout de code, qui sert à créer un cookiedans le répert
prob de conversion de date [ par patof ]
je voudrai mettre a jour l heure du pc avec l heure du serveur intranet, mais ce que je récupère est une string de la forme : "Monday, April 14, 2003
Pourquoi ca marche pas? [ par magicvinni ]
Et une deuxième question : pourquoi cette routine ne marche pas? (je voudrais convertir un string en date et si ca plante renvoyer la date d'aujourd'h
PB Requete SQL :( [ par funemul ]
Voila le probleme :J'utilise un Tquery et ma requete est la suivante :SELECT * FROM annee_2003 WHERE DATE_DU = 01-12-2003Et la requete ne me selection
URGENT!HELP gros pb de positionnement dbase [ par kristof708 ]
salut a tousen fait g du mal m'expliquer (autant pour moi)voila je crée dynamiquement une base de donnée..... with FieldDefs dobegin Add('DATE',f
Pointer une table pour enregistrement (scuse delphiprog) [ par kristof708 ]
> salut a tousScuse moi delphiprog pour "URGENT ETC...."je debute ds les forums (merci a toi)> en fait g du mal m'expliquer (autant pour moi)> voila j
Date ... [ par MAsterC ]
Comment fait-on pour vérifier si la date a changer...exemple :j'ai un label avec comme caption : 30Exécution ...Si nous reculon la date de "1" de wind
Renvoi d'1 SELECT ds Variable [ par TheShAmAn ]
Voici ma fonction qui doit récupérer le résultat de la requête :function Tfrmba.Select(CorpsReq: string):string; var selection : string; begin
Livres en rapport
|
Derniers Blogs
TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|