Turbo pascal {$I-}
Titouan
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
Bonjour,
Je voudrait comprendre l'interet de {$I-} et {$I+}
J'ai cru comprendre que les erreurs étaient ignorées jusqu'a un appel a IOresult mon bout de prog
program test;
uses crt ,windos;
var a : integer
writeln('taper un nombre');
{$I-}
readln(a);
{$I+}
if IOresult <> 0 then
begin
writeln('Vous dever taper un nombre ');
end;
end.
En fait le pregramme ce bloque quand on met une lettre même si les erreur E S sont désactivées.
Merci
Je voudrait comprendre l'interet de {$I-} et {$I+}
J'ai cru comprendre que les erreurs étaient ignorées jusqu'a un appel a IOresult mon bout de prog
program test;
uses crt ,windos;
var a : integer
writeln('taper un nombre');
{$I-}
readln(a);
{$I+}
if IOresult <> 0 then
begin
writeln('Vous dever taper un nombre ');
end;
end.
En fait le pregramme ce bloque quand on met une lettre même si les erreur E S sont désactivées.
Merci
A voir également:
- Turbo pascal {$I-}
- Turbo pascal - Télécharger - Édition & Programmation
- My pascal - Télécharger - Édition & Programmation
- Dev pascal - Télécharger - Édition & Programmation
- I showkeyplus - Télécharger - Utilitaires
- I sans point - Forum Windows
1 réponse
IOresult est l'abréviation de Input Output result
{$I-} et {$I+} ne sont utiles que pour la gestion des erreurs lors de traitement de fichiers
Pour ton problème il vaudrait mieux faire quelquechose dans ce genre là :
{$I-} et {$I+} ne sont utiles que pour la gestion des erreurs lors de traitement de fichiers
Pour ton problème il vaudrait mieux faire quelquechose dans ce genre là :
function DemanderNombre:integer;
var s:string; n,code:integer;
begin
write('Taper un nombre : ');
readln(s); // ici on peut récupérer chiffres, lettres, ou mélange des deux
val(s,n,code); // la valeur de code est égale à la position
// du 1er caractère qui n'est pas un chiffre
writeln(code);
if code=0 then result:=n // on recommence si nécessaire
else result:=DemanderNombre;
end;
function DemanderNombre:integer; var s:string; n,code:integer; begin write('Taper un nombre : '); readln(s); // ici on peut récupérer chiffres, lettres, ou mélange des deux val(s,n,code); // la valeur de code est égale à la position // du 1er caractère qui n'est pas un chiffre if code=0 then result:=n // on recommence si nécessaire else result:=DemanderNombre(); end;