IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo

FAQ PascalConsultez toutes les FAQ

Nombre d'auteurs : 10, nombre de questions : 402, dernière mise à jour : 7 janvier 2018  Ajouter une question

 

Bienvenue dans la F.A.Q. Pascal !

Celle-ci rassemble les réponses aux questions les plus fréquemment posées sur le langage Pascal et tous ses outils de programmation. Si elle n'a pas pour vocation de répondre à toutes les interrogations possibles, elle reste une bonne base de connaissances sur le Pascal, et ne demande qu'à être enrichie par vos expériences personnelles.

Nous vous invitons à proposer vos propres questions/réponses directement dans la FAQ ou, si vous souhaitez apporter une modification à une question/réponse existante, à la poster dans le fil de discussion renseigné ci-dessous.

Nous vous souhaitons une bonne lecture !

L'équipe Pascal.

SommaireLes différents compilateursTurbo PascalErreurs d'exécutionErreurs d'entrées-sorties (7)
précédent sommaire suivant
 

Cette erreur est renvoyée par Read si vous tentez de lire au-delà de la fin d'un fichier.
Pour éviter un arrêt brutal du programme suite à cette erreur d'exécution, utilisez la directive de compilation {$I-} et récupérez le résultat de l'opération par la fonction IOResult.

Mis à jour le 14 mai 2007 Alcatîz

Typiquement, cette erreur indique que l'espace disque est insuffisant, lors de l'exécution d'une des routines suivantes :

  • WriteLn (écrire dans un fichier texte) ;
  • Write (écrire dans les autres types de fichiers) ;
  • Close (fermer un fichier) ;
  • Flush (vider le tampon d'écriture d'un fichier texte).

Pour éviter un arrêt brutal du programme suite à cette erreur d'exécution, utilisez la directive de compilation {$I-} et récupérez le résultat de l'opération par la fonction IOResult.

Mis à jour le 14 mai 2007 Alcatîz

La procédure Assign est très importante, car elle permet d'associer un nom de fichier (ou le périphérique standard d'entrée/sortie) à une variable de type fichier. Si vous omettez cette assignation, l'erreur 102 sera renvoyée par une des routines suivantes :

  • Reset (ouvrir un fichier) ;
  • Rewrite (créer un fichier) ;
  • Append (ouvrir un fichier texte en mode ajout) ;
  • Rename (renommer un fichier) ;
  • Erase (supprimer un fichier).

Pour éviter un arrêt brutal du programme suite à cette erreur d'exécution, utilisez la directive de compilation {$I-} et récupérez le résultat de l'opération par la fonction IOResult.

Mis à jour le 14 mai 2007 Alcatîz

Cette erreur indique que le fichier sur lequel vous voulez effectuer une des opérations suivantes n'est pas ouvert :

  • Read, ReadLn, BlockRead (lire dans le fichier) ;
  • Write, WriteLn, BlockWrite (écrire dans le fichier) ;
  • Close (fermer le fichier) ;
  • EOF (tester la fin de fichier) ;
  • Seek (déplacer le pointeur de fichier) ;
  • FilePos (déterminer la position actuelle du pointeur de fichier) ;
  • FileSize (déterminer la taille du fichier).

Pour éviter un arrêt brutal du programme suite à cette erreur d'exécution, utilisez la directive de compilation {$I-} et récupérez le résultat de l'opération par la fonction IOResult.

Mis à jour le 14 mai 2007 Alcatîz

Cette erreur ne concerne que les fichiers texte. Elle indique que le fichier sur lequel vous voulez effectuer une des opérations suivantes n'est pas ouvert en lecture :

  • Read, ReadLn (lire dans le fichier) ;
  • EOF, SeekEOF (indicateur de fin de fichier) ;
  • EOLn, SeekEOLn (indicateur de fin de ligne).

Pour éviter un arrêt brutal du programme suite à cette erreur d'exécution, utilisez la directive de compilation {$I-} et récupérez le résultat de l'opération par la fonction IOResult.

Mis à jour le 28 mai 2007 Alcatîz

Cette erreur ne concerne que les fichiers texte. Elle indique que le fichier sur lequel vous voulez effectuer une opération d'écriture (Write ou WriteLn) n'est pas ouvert en écriture.

Pour éviter un arrêt brutal du programme suite à cette erreur d'exécution, utilisez la directive de compilation {$I-} et récupérez le résultat de l'opération par la fonction IOResult.

Mis à jour le 28 mai 2007 Alcatîz

Cette erreur ne concerne que les fichiers texte. Elle est déclenchée si vous essayez de lire, dans un fichier texte, une valeur numérique qui n'est pas du même format que la variable passée à Read ou ReadLn.
Exemple :

Code Delphi : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
  
Program LectNb; 
  
Var f : Text; 
    Nb : Integer; 
  
Begin 
  {$I-} 
  { Ecriture de réels... } 
  Assign(f,'TEST.TXT'); 
  Rewrite(f); 
  WriteLn(f,'1.1 2.2 3.3 4.4 '); 
  WriteLn(f,'5.5 6.6 7.7 8.8 '); 
  Close(f); 
  { ... mais lecture d'entiers } 
  Reset(f); 
  while not EOF(f) do 
    begin 
      Read(f,Nb); 
      WriteLn('Erreur : ',IOResult);   { Erreur 106 ! } 
    end; 
  Close(f); 
End.
Pour éviter un arrêt brutal du programme suite à cette erreur d'exécution, utilisez la directive de compilation {$I-} et récupérez le résultat de l'opération par la fonction IOResult.

Mis à jour le 28 mai 2007 Alcatîz

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.