Bonjour,
j'aimerai savoir comment on fait pour déterminer le type que rentre l'utilisateur dans la machine lors d'un read() et ainsi éviter que le programme plante lorsqu'il se trompe.
Bonjour,
j'aimerai savoir comment on fait pour déterminer le type que rentre l'utilisateur dans la machine lors d'un read() et ainsi éviter que le programme plante lorsqu'il se trompe.
Je ne crois pas que tu puisses vraiment.
Par contre dans la fonction val(nb_str : String, nb_int : Integer, code_erreur : Integer) permet de transformer la chaine "nb_str" en l'entier "nb_int" si c'est possible et renvoie un certain code d'erreur si ça ne l'est pas.
Donc si tu veux tester si l'utilisateur entre bien un entier (par exemple), tu peux utiliser ce code d'erreur.
Malheureusement cela ne fonctionne pas avec FreePascal ! Et je crois bien qu'il n'existe pas de solution.
Merci quand même.
Bonjour !
La procédure Val est implémentée dans l'unité System de Free Pascal depuis la version 1.Elle permet de convertir une chaîne en entier ou en réel.
Peux-tu nous montrer l'extrait de code dans lequel tu l'appelles, afin de voir ce qui ne va pas ?
Règles du forum
Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
Mes tutoriels et sources Pascal
Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]
bonjourEnvoyé par Vitoo
Si tu te relis tu veras bien que pour lire dans un read() il faut bien que ta variable soit d'un type donné.
Si ej t'ai bien compris alors il faut qu'il existe un type Perel dont heriterais tous les autres types dans le genre
{je rappelle que ce code se passe dans notre imagination}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 {A ce niveau on ne connais pas encore le type de temp} temp:Type_Pere; temp:=2;{temp peut etre un integer} temp:='chaine';{temp peut etre un string} temp:='c';{temp peut etre un char} temp:=true;{temp peut etre un boolean}
Ensuite il existerais un fonction à qui on passerait notre variable et qui nous renverais le type que l'utilisateur a choisi
Tout ça est bien beau et faciliterais les choses mais je crois pas que ça existe
Mais ce que je crois que tu peux faire par exemple est de fixer un type pour ta variable et ensuite verifier si l'utilisateur à entré le bon type ',
Ce qeu propose Loceka fera l'affaire mais vu ce que tu demandes est restreint(si ce que tu demande est possible a faire)
voila j'espere avoir aidé
@+
Partager