Problème de test "IOResult" suite à ouverture fichier (Delphi7)
songeurs
Messages postés
9
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Suite à l'ouverture d'un fichier dans la séquence de code ci-dessous, le chemin du fichier étant erroné, "IOResult" est positionné à 3, ce qui est normal.
Mais lors du test "if (IOResult <> 0) then" au lieu de passer dans le traitement pour signaler l'anomalie,.le traitement continue comme si IOResult était à zéro et va se planter sur l'instruction "while (not EOF (FicIn)) do".
Quelqu'un pourrait-il expliquer pourquoi ?
Merci d'avance pour votre aide.
Suite à l'ouverture d'un fichier dans la séquence de code ci-dessous, le chemin du fichier étant erroné, "IOResult" est positionné à 3, ce qui est normal.
Mais lors du test "if (IOResult <> 0) then" au lieu de passer dans le traitement pour signaler l'anomalie,.le traitement continue comme si IOResult était à zéro et va se planter sur l'instruction "while (not EOF (FicIn)) do".
Quelqu'un pourrait-il expliquer pourquoi ?
Merci d'avance pour votre aide.
{$I-}
AssignFile (FicIn, CheminEtNomFichier);
FileMode := 0; //Accès en lecture seule
Reset (FicIn); //Ouverture en lecture seule
{$I+}
if (IOResult <> 0) then
begin //Signaler anomalie
...
end
else
begin //Continuer le traitement
while (not EOF (FicIn)) do
begin //Enregs à lire
...
A voir également:
- Problème de test "IOResult" suite à ouverture fichier (Delphi7)
- Test performance pc - Guide
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Test disque dur - Télécharger - Informations & Diagnostic
2 réponses
Bonjour,
le traitement continue comme si IOResult était à zéro C'est exactement ce qui se passe ! Il faut donc sauvegarder sa valeur dans une variable avec laquelle on va effectuer les tests :
le traitement continue comme si IOResult était à zéro C'est exactement ce qui se passe ! Il faut donc sauvegarder sa valeur dans une variable avec laquelle on va effectuer les tests :
... Var erreur : integer; ... {$I-} AssignFile (FicIn, CheminEtNomFichier); FileMode := 0; //Accès en lecture seule Reset (FicIn); //Ouverture en lecture seule {$I+} erreur:=IOResult; if (erreur<>0) ...
Bonjour,
Cela fonctionne en faisant comme indiqué.
Ce comportement parait quand même bien étrange.
Je fais du Delphi par intermittence depuis l'an 2000 et jusqu'à présent je n'ai pas eu l'occasion de me rendre compte de cette particularité..
Cela veut dire que la valeur n'est plus disponible, sans doute est elle modifiée par des opérations du système ?
En tout cas merci pour cette assistance efficace !
Cela fonctionne en faisant comme indiqué.
Ce comportement parait quand même bien étrange.
Je fais du Delphi par intermittence depuis l'an 2000 et jusqu'à présent je n'ai pas eu l'occasion de me rendre compte de cette particularité..
Cela veut dire que la valeur n'est plus disponible, sans doute est elle modifiée par des opérations du système ?
En tout cas merci pour cette assistance efficace !