Pourquoi ca marche pas?

magicvinni Messages postés 235 Date d'inscription vendredi 25 avril 2003 Statut Membre Dernière intervention 26 juillet 2010 - 20 janv. 2003 à 13:21
speletux Messages postés 30 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 6 février 2014 - 23 sept. 2005 à 06:48
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'hui) :

function Str2Date(S:string):TDate;
var t:TDate;
begin
try
t:=StrToDate(S);
except
On EConvertError do t:=Date;
end;
Str2Date:=t;
end;
Merci
MagicVinni

8 réponses

cs_RMD Messages postés 84 Date d'inscription mercredi 25 septembre 2002 Statut Membre Dernière intervention 21 mai 2004
20 janv. 2003 à 16:30
Et pourtant, cela fonctionne, quel est ton problème ?

RMD

pro.wanadoo.fr/rmd/
0
samounet Messages postés 99 Date d'inscription lundi 10 septembre 2001 Statut Membre Dernière intervention 19 février 2003
20 janv. 2003 à 16:49
s il est vrai qu'en VB tu fais NomDeLaFonction <- Resultat pour le retour, en Delphi, on fait plutot Result <- le resultat

donc un truc comme ca devrait mieux marcher

function Str2Date(S:string):TDate;
begin
try
Result :=StrToDate(S);
except
On EConvertError do Result :=Date;
end;
end;
0
magicvinni Messages postés 235 Date d'inscription vendredi 25 avril 2003 Statut Membre Dernière intervention 26 juillet 2010
20 janv. 2003 à 17:55
Ben non ca marche pas, si on met un truc qui n'est pas une date, ca plante comme si il n'y a vait pas d'expect....
MagicVinni
0
samounet Messages postés 99 Date d'inscription lundi 10 septembre 2001 Statut Membre Dernière intervention 19 février 2003
20 janv. 2003 à 19:31
euh oué mais attention, quand tu es en debug (cad kan tu fais tourner ton prog par l IDE) tu as TOUJOURS l exception qui se declenche

ce n est ke lorsque tu lance l exe que la gestion d exception est transparente !!!!!!!!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Nono40 Messages postés 962 Date d'inscription mercredi 3 avril 2002 Statut Membre Dernière intervention 12 septembre 2006 2
20 janv. 2003 à 20:15
Ce n'est pas exactement ça : le try ..except ne masque pas les exception, mais permet d'en controler la sortie. Et ceci que tu sois en mise au point au en dehors de Delphi. L'exécution continue toujours après le End de Try Except End même en mise au point.
Par contre en mise au point Delphi affiche l'endroit de l'erreur avant la gestion du Try..except, mais celui-ci est géré ensuite.

Dans le cas présent, il faut être sûr qur lexception soit du Type EConvertError, dans le doute il vaut mieux rester vague :

try
  Result :=StrToDate(S);
except
  On Exception do Result :=Date;
end;


--- :sleepy) Nono40@fr.st :sleepy) ---
Nouveau ---> Nono40.fr.st
0
magicvinni Messages postés 235 Date d'inscription vendredi 25 avril 2003 Statut Membre Dernière intervention 26 juillet 2010
20 janv. 2003 à 21:01
Merci, en effet, quand je lance l'exe, ca marche...Je me coucherai moins bête ce soir
MagicVinni
0
cs_RMD Messages postés 84 Date d'inscription mercredi 25 septembre 2002 Statut Membre Dernière intervention 21 mai 2004
21 janv. 2003 à 09:58
Si tu ne veux pas que Delphi s'arrête à chaque exception :

Décoche la case Stopper si exception dans Outils/options d'environnement onglet préférence

RMD

pro.wanadoo.fr/rmd/
0
speletux Messages postés 30 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 6 février 2014
23 sept. 2005 à 06:48
Autre chose:

Lorsque on code une fonction qui retourne un résultat en fonction de
plusieurs paramètres qui ne seront pas modifiés dans le corps de la
fonction,

il faut TOUJOURS passer ce paramètres comme constantes:

- le code machine est optimisé

- on évite des bugs et des effets de bord

- économie de mémoire: si on ne spécifie pas const ou var devant un
paramètre, la fonction travaille sur une copie de ce paramètre.



Implémentez une routine appelée SWAP, qui échange deux valeurs ...
0
Rejoignez-nous