Comment faire une gestion d'erreur ? [pascal] - Programmation
Marsh Posté le 09-01-2002 à 12:43:28
fais lui demander un char et traite le char avec les caractères ASCII
Marsh Posté le 09-01-2002 à 12:45:14
ben si tu veux UNIQUEMENT des vals numériques, utilises une var "string" pour la saisie, puis convertie la en integer ou ce que tu veux avec la fonction qui va bien (dont le nom m'échappe mais qui existe), et si la fonction de convertion retourne une erreur : affiche l'erreur et refait ta boucle de saisie...
tu peux étoffer en faisant une boucle de 1 à length(chaine_saisie) qui verifie si chaque caractere est un chiffre ou autre...
Marsh Posté le 09-01-2002 à 12:51:22
merci bcp, j'y avais pensé mais j'avais pas trouvé comment faire la conversion...une recherche + approfondi et ça roule !!!
Marsh Posté le 09-01-2002 à 12:56:09
ya bien StrToInt sous Delphi (http://delphi.about.com/library/rtl/blrtlStrToInt.htm)
mais je sais plus si c la même syntaxe en Pascal (je suppose turbopascal)
par contre j'ai pas d'infos sur la val retournée en cas d'erreur (OnError alors )
c à voir
Marsh Posté le 09-01-2002 à 15:14:28
sous delphi il ne faut pas utiliser strtoint car si la chaine n'est pas bonne cela va lever une exception, le plus simple est d'utiliser val qui va en plus retourner un code d'erreur qu'il suffira de tester (si <>0 alors pas bon)
http://delphi.about.com/library/rt [...] ?terms=val
Marsh Posté le 09-01-2002 à 15:24:40
et alors ? une exception ça tue pas hein
tu fais
try
machin := strtoint(truc);
except
ce qui se passe si c pas valide
end;
Marsh Posté le 09-01-2002 à 17:05:10
je sais bien que ça tue pas, j'utilise delphi depuis la v1
mais savoir résoudre un problème de plusieurs manières permet de choisir la meilleure solution en fonction du moment...
Marsh Posté le 11-01-2002 à 14:33:08
c meme pas delphi, on est sous turbopascal (vive le DOS ! )
sinon g fini avec des string convertis mais ça bouffe + de 150 lignes sur les 340 du prog !
Marsh Posté le 09-01-2002 à 12:28:07
Si on rentre des caracteres quand le prog attend une valeur numerique, ça plante (logique). Comment faire pour que cela ne plante pas et que je puisse recuperer le texte entré (ou au moins que je puisse recuperer l'erreur) pour l'interpreter et en faire un signal de sortie ?